Rain Geschrieben 14. November 2002 Geschrieben 14. November 2002 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 Zitieren
Jaraz Geschrieben 14. November 2002 Geschrieben 14. November 2002 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 Zitieren
Rain Geschrieben 15. November 2002 Autor Geschrieben 15. November 2002 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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.