Informatik

Grundkurs 1
 
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
   }


 

Pfeil

verantw.: J. Frank