Gegevens tekstbox komen niet in db.

Status
Niet open voor verdere reacties.

Hobbit

Gebruiker
Lid geworden
15 okt 2002
Berichten
129
Hallo,

Ik probeer middels een php scriptje een stukje tekst naar een mySQL db weg te schrijven.
Wanneer ik op Submit druk, en ik ga kijken naar de weggeschreven tekst, zie ik vervolgens dat er niks naar m'n db is geschreven.

Als ik handmatig tekst in de db zet met mbv phpmyadmin dan is deze wel te zien. Als ik dan weer tekst probeer toe te voegen via het script, dan is alles weer verdwenen. Wat gaat er fout?

Script
PHP:
<?php

include ("tinymce.php"); 
include ("db_verbinding.php"); 
 
  If (isset($_GET['id'])) {
  $query = ("SELECT * FROM home_txt WHERE id='".$_GET['id']."'");
  $result = mysql_query($query);
}
  while ($obj = mysql_fetch_object($result)) {
  
  $body_id = "$obj->id";
  $body_txt = "$obj->textblock";
  }
?>

<?php 
$db_table = "home_txt";
if (isset($_REQUEST['Submit'])) 
{ 
$body_id2 = "$body_id";
$body_txt2=($_POST['textblock']); 

$sql = "UPDATE home_txt SET textblock='".$body_txt2."' WHERE id='".$body_id2."'";
if($result = mysql_query($sql ,$db)) 
{ 
echo "Tekst op Homepage is opgeslagen</br>";
echo ("<a href=\"view_home_txt.php\">Ga verder</a>");
} 
else 
{ 
echo "ERROR: ".mysql_error(); 
} 

} 
else
{ 
?>

<form method="post" action="">
<table>
<tr><td>
<!-- Gets replaced with TinyMCE, remember HTML in a textarea should be encoded -->
<textarea id="elm1" name="biography" rows="15" cols="80" style="width: 600px"><?php echo $body_txt ; ?></textarea>
</td>
<td></td>
<tr><td<input type="submit" name="Submit" value="Submit"></td></tr>
</table>
</form> 
<?php
} ?>
 
Je doet een update (ie: wijzig reeds bestaande gegevens) met de ingevoerde tekst, en gebruikt daarvoor een id.
Dat id zet je hier:
PHP:
$body_id2 = "$body_id";

Echter bestaat er geen variabele $body_id, dus weet hij niet wat hij moet updaten.

Daarnaast, als dit nieuwe informatie is (die dus een nieuwe rij moet krijgen) moet je INSERT gebruiken, niet UPDATE.

Good luck.
 
Hoi Frats,

Maar ik declareer de variable $body_id toch op regel 12?

PHP:
$body_id = "$obj->id";

Het id wordt uit de url gehaal middels pagina.php?id=1

Of moet de variabele $body_id opnieuw gedeclareerd worden?

Bedankt alvast.
 
Hmm, die had ik gemist :( Ben nog een beetje moe van het nieuwe jaar.

Wat is de inhoud van de $sql variabele? Kun je die eens posten en handmatig runnen in phpMyAdmin? Werkt het dan wel?
 
Je kan ook nog proberen om regel 19 te veranderen in
PHP:
if ($_SERVER['REQUEST_METHOD'] == "POST")
Niet elke browser stuurt altijd de naam van de submit-knop mee. Dit werkt wel altijd. Zelfs als dit je probleem niet oplost is het toch beter om dit te gebruiken om problemen in de toekomst te voorkomen.
 
Laatst bewerkt:
Je kan ook nog proberen om regel 19 te veranderen in
PHP:
if ($_SERVER['REQUEST_METHOD'] == "POST")
Niet elke browser stuurt altijd de naam van de submit-knop mee. Dit werkt wel altijd. Zelfs als dit je probleem niet oplost is het toch beter om dit te gebruiken om problemen in de toekomst te voorkomen.

Deze heb ik nu aangepast. Helaas was het niet de oplossing. Maar erg bedankt voor de tip.
 
Hmm, die had ik gemist :( Ben nog een beetje moe van het nieuwe jaar.

Wat is de inhoud van de $sql variabele? Kun je die eens posten en handmatig runnen in phpMyAdmin? Werkt het dan wel?

Hier begrijp ik niet helemaal wat je bedoeld. Ik ben tenslotte een beginner met php en mysql;-)

De tabel home_txt bestaat uit 2 kolommen. id en textblock.
Ik wil de bestaande tekst uit textblock kunnen aanpassen.

Als ik de tekst handmatig toevoeg in phpMyAdmin, dan werkt het. Dan is m'n tekst zichtbaar in de TinyMCE editor. Op het moment wanneer ik dan de tekst aanpas en op submit druk, verdwijnt de tekst uit m'n tabel. Het lijkt alsof er een leeg tekstveld wordt gepost.

Of is dit niet wat je bedoelt.
 
Laatst bewerkt:
Wat je moet doen is kijken wat er precies verzonden wordt naar de database...

Zet tussen regel 24 en 25 gewoon een echo:

PHP:
echo $sql;

Dan stuurt ie de query naar je scherm, waarschijnlijk zit er namelijk iets niet goed in de query.
 
Hoi Frats,

Briljant idee van je. Toch weer een beetje bijgetrokken van het nieuwe jaar:thumb:

Als resultaat krijg ik: UPDATE home_txt SET textblock='' WHERE id='1'

Er wordt dus een leeg veld verzonden. Maar hoe lang ik ook staar naar m'n code, ik ziet het niet.:confused:
 
Maak van:

PHP:
$body_txt2=($_POST['textblock']);

eens:

PHP:
$body_txt2 = $_POST[ 'biography' ];

De naam van je invulveld is namelijk "biography" en niet "textblock".
 
Maak van:

PHP:
$body_txt2=($_POST['textblock']);

eens:

PHP:
$body_txt2 = $_POST[ 'biography' ];

De naam van je invulveld is namelijk "biography" en niet "textblock".

Verdorie, Erik. Dat is em!!! Dat ik dat over het hoofd heb gezien.
Ik heb maar zitten staren naar de php-code, maar het zat hem dus simpelweg in m'n form.
Super!!

Iedereen bedankt voor het meedenken en het oplossen van m'n probleempje.

Mijn jaar begint lekker;-)
Thanks guys!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan