Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Problem mit der Ausgabe aus DB

Empfohlene Antworten

Veröffentlicht

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

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

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.