Zusatz-Kommentar für Gästebuch wird nicht eingetragen

sheeba1507

Erfahrenes Mitglied
Hallo zusammen,

in meinem Gästebuch-Script hat sich ein kleiner Fehler eingeschlichen,
den ich einfach nicht finden kann.

Ich habe eine Codierung eingebaut, mit der ich auf Gästebuch-Einträge
einen Zusatz-Text schreiben kann.
Das Eingabe-Formular habe ich ausgiebig getestet, der Fehler kann hier
also nicht liegen.
Lediglich bei der Übergabe in die Datenbank wird nichts übertragen.

Im Eingabe-Formular wähle ich zuerst die ID aus ($idwahl) und gebe dann
den Zusatztext ($adm_text) ein.

Die Eingaben werden wie folgt verarbeitet :
PHP:
$idwahl = $_POST["idwahl"]; 
$adm_text = $_POST["adm_text"]; 
... 
$sqleintrag = "UPDATE '$dbank' SET adm_text='$adm_text' WHERE id='$idwahl' "; 
mysql_query($sqleintrag);
Alle bestehenden Eingaben bleiben erhalten, jedoch wird der Zusatz
nicht eingetragen.

Erkennt hier jemand den Fehler ?
Thanks im voraus.

Gruß, Mike
 
Hallo,

lass dir mal eine eventuelle Fehlermeldung von MySQL ausgeben, z.B. indem du die Anfrage so erweiterst:
PHP:
mysql_query($sqleintrag) or echo mysql_error();

Außerdem solltest du $_POST-Daten zuerst validieren, bevor du sie in eine Datenbankanfrage integrierst (sofern das nicht schon im ausgelassenen Codeteil passiert).

Grüße,
Matthias
 
@zeja
Ja, die ID ist vorhanden.

@Matthias
Hier einmal der (fast) vollständige Code :
PHP:
  $idwahl = $_POST["idwahl"];
  $adm_text = $_POST["adm_text"];
  if(isset($_POST['submit']))
    {
    //Formular wurde gesendet
    if ($idwahl == "")
      {
      $mess = "Keine Auswahl eingetragen";
      }
    elseif ($adm_text == "")
      {
      $mess = "Kein Zusatztext eingetragen";
      }
    else
      {
      include ($dbcon);
      $sqleintrag = "UPDATE '$dbank' SET adm_text = '$adm_text' WHERE id = '$idwahl' ";
      $check = mysql_query($sqleintrag);
      if($check == true)
        {
        mysql_query($sqleintrag);
        mysql_free_result($sqleintrag);
        $idwahl = "";
        $adm_text = "";
        $mess = "Zusatztext eingetragen";
        }
      else
        {
        $mess = "Eintragung fehlgeschlagen";
        }
      }
    }

@hmmNaGut
Auch das wurde von mir schon mehrfach überprüft.
Kein Tippfehler vorhanden.

Danke allen schon mal für die ersten Anregungen.

Gruß, Mike
 
Welche Fehlermeldung wird den Angezeigt?
lass dir vielleicht mal mysql_error ausgeben

vielleicht steht da was brauchbares.

Es kann ja auch sein das der Feldname vielleicht nicht passt,
Probiers mal mit

statt check hmm Versuch ist es Wert

if (mysql_query($variable))
 
Der Check ergibt = false, so daß die Meldung "Eintragung fehlgeschlagen" ausgegeben wird.

Ich habe es auch bereits mit anderen Variablen-Namen versucht,
daß Ergebnis war auch weiterhin erfolglos.

Ich habe jetzt mal folgendes verändert :
PHP:
$sqlupdate = "UPDATE '$dbank' SET adm_text = '$adm_text' WHERE id = '$idwahl' ";
mysql_query($sqlupdate) or die("Fehler in SQL-Update");
mysql_free_result($sqlupdate);
$idwahl = "";
$adm_text = "";
$mess = "Zusatztext eingetragen";
Nun erscheint nach Submit umgehend die Meldung "Fehler in SQL-Update".
Kann es sein, daß eine der beiden Variablen nicht korrekt übergeben wurde ?

Die Übergabe erfolgt mittels ...
PHP:
$idwahl = $_POST["idwahl"];
$adm_text = $_POST["adm_text"];
... aus dem Formular durch ...
PHP:
<input class="idwahl" name="idwahl" type="text" <?php echo $idwahl; ?> />
<textarea class="gb_komm" name="adm_text" 
  rows="4" cols="15"><?php echo $adm_text; ?></textarea>
... und submit.

Auch hier kann ich keinen Fehler entdecken. So langsam habe ich das dumpfe
Gefühl, dieses Formular mag mich nicht oder will mich ärgern. ;-]

Gruß, Mike
Noch allen einen schönen Rest Oster-Sonntag.
 
Ganz blöd aber vielleicht funktioniert es mit LIMIT 1 bei der update Klausel:

PHP:
$sqlupdate = "UPDATE '$dbank' SET adm_text = '$adm_text' WHERE id = '$idwahl' LIMIT 1";

probiers halt mal.
 

Neue Beiträge

Zurück