| |

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();
?>
|
|