Veröffentlicht 14. November 200222 j Ich habe folgendes Php Script geschrieben um mich mit Mysql und php vertraut zu machen: Soll so eine Art Gästebuch werden: <html> <body> <?php if($gesendet) { $db = mysql_connect(*********); echo "Es befinden sich folgende Einträge in der Datenbank:<p>"; $res = mysql_db_query("*****","select * from guestbook"); $num = mysql_num_rows($res); echo "$num Datensätze gefunden<br>"; echo "<br>"; echo "<br>"; for($i=0; $i<$num;$i++) { $nn = mysql_result($res, $i, "name"); $vn = mysql_result($res, $i, "vorname"); $em = mysql_result($res, $i, "email"); $ko = mysql_result($res, $i, "kommentar"); echo "$nn, $vn, $em, $ko <br>"; } $sqlab = "insert guestbook"; $sqlab .= "(name, vorname, email, kommentar) values "; $sqlab .= "('$Name', '$Vorname', '$Email', '$Kommentar')"; mysql_db_query("reinbacher", $sqlab); $num = mysql_affected_rows(); if ($num>0) echo "Es wurde 1 Datensatz hinzugefügt<p>"; else { echo "Es ist ein Fehler aufgetreten, "; echo "es wurde kein Datensatz hinzugefügt<p>"; } mysql_close($db); } ?> </head> <body> Bitte etwas eingeben und absenden: <form action = "main.php" method = "post"> <input name = "Name"> Nachname <p> <input name = "Vorname"> Vorname <p> <input name = "Email"> E-Mail Adresse <p> <input name = "Kommentar"> Dein Kommentar <p> <input type = "submit" name = "gesendet"> <input type = "reset"> </form> </body> </html> Dieses File ruft sich nach dem Abschicken selbst wieder auf. Doch klickt man auf Abschicken, so bekommt man den eingegebenen Eintrag nicht zu Gesicht. Klickt man auf Aktualisieren im Browser so wird der eintrag zwei mal in die DB geschrieben. Was kann ich am Script ändern, damit ich nach der Eingabe und dem Abschicken den neuen Eintrag gleich sehe und nicht nur die alten Eintrage? Und wie kann man es unterbinden, dass der User bei einem Feld nichts eingibt und das Formular trotzdem abschickt? Besten Dank Rain
14. November 200222 j Originally posted by Rain <input name = "Name"> Nachname <p> Du musst auch den Wert setzen: <input name="Name" value="<?php echo $Name ?>"> Nachname <p> Das wiederholte speichern löst man, indem man beim ersten speichern eine Sessionvariable setzt, und deren Existenz bei jedem Seitenaufruf checkt. Ist die Variable gesetzt, wurde schon gespeichert. Alternative: Vorher in der Datenbank nachschauen ob der Datensatz schon drin ist. Gruß Jaraz
15. November 200222 j Wie kann ich konkret überprüfen ob die eingegebenen daten schon in der DB enthalten sind? Würde mich über ein kleines Stück Source freuen da ich in Sachen Mysql noch ein ziemlicher Newbee bin. Besten Dank Rain
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.