| |

Einen neuen Datensatz einfügen
Das Formular hat den Kopf: <form method="POST" action="einfuegen.php">,
womit die eingetragenen Daten nach Absenden mit der POST-Methode an das Skript
einfuegen.php gesandt werden. In diesem werden nach der bekannten
Datenbankverbindung zunächst die Variableninhalte übernommen:
// Variablen aus POST-Array extrahieren
$bezeichnung = $_POST['bez'];
$fundort = $_POST['wo'];
$tag = $_POST['tag'];
$monat = $_POST['monat'];
$jahr = $_POST['jahr'];
$vorname = $_POST['vname'];
$name = $_POST['name'];
$telefon = $_POST['tel'];
$email = $_POST['email'];
Da in mysql-Datenbanken ein Datum im Format Jahr-Monat-Tag gespeichert wird,
wurden zur Fehlervermeidung die Datumbestandteile mit select-Auswahlen erfragt,
nun wird das Datum in richtiger Reihenfolge zusammengesetzt:
// Datum aus Tag, Monat und Jahr in mysql-Format zusammensetzen
$datum = $jahr . "-" . $monat . "-" . $tag;
Die Fundsache wird ohne Überprüfung eingetragen, da eine Sache nur
wahrscheinlich nur einmal am gleichen Ort gefunden wird:
$sql = "INSERT INTO sache (snr,bezeichnung,fundort,datum)
VALUES ('','$bezeichnung','$fundort','$datum')";
$result = mysql_query($sql);
if ( $result == FALSE ) {
echo "<p><b>Leider konnte die Fundsache nicht eingetragen werden.</b></p>";
exit (); // PHP-Script beenden
}
Nun wird durch Abfrage von Name und Vorname geprüft, ob die Person schon in
der Datenbank eingetragen ist. Besteht schon ein Eintrag (Zeilenzahl größer als
0), so wird die Personennummer ermittelt. Im anderen Fall (else) wird der Finder
neu eingetragen.
// prüfen, ob die Person schon eingetragen ist
$sql1 = "SELECT pnr,vorname,name FROM person
WHERE vorname = '$vorname' and name = '$name'";
$result1 = mysql_query($sql1);
$num = mysql_Num_Rows($result1);
// Person schon vorhanden
if ($num != 0 ) {
$pnummer = mysql_result($result1, 0, 'pnr');
} else
// Person noch nicht eingetragen
{
$sql2 = "INSERT INTO person (pnr,vorname,name,tel,email)
VALUES ('','$vorname','$name','$telefon','$email')";
$result2 = mysql_query($sql2);
if ( $result2 == FALSE ) {
echo "<p><b>Leider konnte die Person nicht eingetragen werden.</b></p> \n";
exit (); // PHP-Script beenden
}
Um die beiden Schlüssel in "fund" einzutragen, werden sie nun noch einmal
ermittelt (die Wiederholung von $sql1 ist überflüssig):
// noch einmal nach der Person fragen
$sql1 = "SELECT pnr,vorname,name FROM person
WHERE vorname = '$vorname' and name = '$name'";
$result1 = mysql_query($sql1);
$pnummer = mysql_result($result1, 0, 'pnr');
} // von else
// ID der bereits eingetragenen Fundsache ermitteln
$sql = "SELECT snr,bezeichnung,fundort,datum FROM sache
WHERE bezeichnung = '$bezeichnung' and
fundort = '$fundort' and datum = '$datum'";
$result = mysql_query($sql);
$num = mysql_Num_Rows($result);
if ($num != 0 ) {
$snummer = mysql_result($result, 0, 'snr');
}
// die beiden IDs in "fund" eintragen
$sql = "INSERT INTO fund (snr,pnr) VALUES ('$snummer','$pnummer')";
$result = mysql_query($sql);
if ( $result == FALSE )
{
echo "<p><b>Leider konnte die Verbindung nicht eingetragen werden.</b></p> \n";
exit (); // PHP-Script beenden
}
|
|