Informatik

Grundkurs 1
 
Nach Datensätzen suchen
 
Bei dieser einfachen Anwendung dürfte wohl meist nach einer verlorenen Sache gesucht werden, aber um den variablen Einsatz zu ermöglichen, wird eine Auswahl an Suchfeldern angeboten. Es wird dabei jeweils nur nach einem Attribut gesucht, um die SQL-Anfragen einfach zu halten, sonst müsste man bei jedem Feld prüfen, ob etwas eingetragen wurde und diese Eingaben zu einer Abfrage zusammenstellen.

<form method="POST" action="suchen1.php">

  <select name="suchfeld" size="1">
    <option value="bezeichnung">Fundsache-Bezeichnung
    <option value="fundort">Fundsache-Fundort
  </select>
In "suchen1.php" werden die Verbindung zur Datenbank erstellt, die Variablen übernommen und das Datum zusammengestellt.
Je nachdem, ob ein Datum eingegeben wurde oder nicht, werden die SQL-Abfragen erstellt:

  if ( $datum != '0000-00-00') {
  $query = "SELECT * FROM sache
  where $suchfeld like '$suchbegriff' and
  (datum = '$datum')";
  }
  else {
  $query = "SELECT * FROM sache
  where $suchfeld like '$suchbegriff'";
  }
  $result = mysql_query($query);
  $num = mysql_Num_Rows($result);
In "$num" speichert man die Zahl der Ergebniszeilen, davon abhängig wird nun entweder ein Formular mit einem Eintrag oder eine Liste mit mehreren ausgegeben. Um nicht alle HTML-Tags durch echo- oder print-Anweisungen schreiben zu müssen, verwenden wir den Trick, php zu beenden, aber auf eine Fortsetzung (:) der Befehle zu verweisen:

  if ($num == 1):
?>
Wenn nur ein Datensatz gefunden wurde, erstellen wir eine Tabelle wie bei der Eingabe und füllen die Felder durch einzelne php-Ausgaben:

<tr>
  <td>Bezeichnung</td>
  <td><?php echo mysql_result($result, 0, "bezeichnung")?></td>
  ...
nun wird die php-Anweisungsfolge fortgesetzt:

<?php
 elseif ( $num > 1 ):
?>
Ist die Anzahl größer als 1, erstellen wir eine Liste wie schon bei der Listenausgabe, zunächst den Listenkopf in HTML, dann das Füllen der Liste mit php-Ausgaben. Um Löschen und Ändern vorzustellen, sind am Anfang jeder Zeile zwei verlinkte Buttons und , im Link wird die Sachnummer als GET-Daten an "anzeigen11.php" oder "anzeigen21.php" weitergereicht:

<a href=\"anzeigen11.php?snr=$snr\"><img src=\"bilder/b_drop.png\"></a>
Zum Abschluss wird die Auswahl beendet:

<?php
  else: echo "<b>Eintrag nicht vorhanden!</b>";
  endif;
  mysql_close();
?>


 

Pfeil

verantw.: J. Frank