Hat der Besucher keinen Interpreten, sondern einen Titel eingegeben, ermitteln wir dies im elseif-Block. Dort definieren wir eine SQL-Anweisung, die das Titel-Feld der Datenbanktabelle abfragt. In beiden Fällen wird der Wortlaut der SQL-Anweisung in der Variablen $sqlc abgelegt.
Datenquellenname ist der Name der ODBC-Datenquelle, die Sie öffnen möchten. Wenn die Datenquelle mit einem Benutzernamen und einem Kennwort geschützt ist, geben Sie diese anschließend an. Der Cursortyp bestimmt, wie Sie sich in der Datenbank bewegen. In der Regel verwenden Sie den Cursortyp SQL_CUR_USE_ODBC.
Die Funktion gibt ein so genanntes Handle zurück, das in unserem Fall in der Variablen $dbh gespeichert wird. Dabei handelt es sich um einen Verweis auf die Datenquelle. Sie benutzen dieses Handle im weiteren Programmverlauf, um auf die mit der geöffneten Datenquelle verknüpfte Datenbank zuzugreifen.
Ausführen der SQL-Anweisung
In der Zeile
$res=odbc_exec ($dbh, $sqlc);
wird die eigentliche SQL-Anweisung ausgeführt. Dies geschieht mit der Funktion odbc_exec, der das Datenbank-Handle und die SQL-Anweisung (gespeichert in der Variablen $sqlc) übergeben wird. Das Datenbank-Handle ist notwendig, damit die Funktion weiß, für welche Datenbank die Abfrage erfolgen soll.
Die Funktion gibt ein Handle zurück, das auf den so genannten Ergebnissatz verweist. Dies ist die Gruppe aller Datensätze, die die Bedingungen in der Abfrage erfüllen. Das Handle wird in der Variablen $res abgelegt, die wir später im Programm benutzen, um auf den Ergebnissatz zuzugreifen.
sorgt dafür, dass alle im Ergebnissatz enthaltenen Datensätze ausgelesen und in der Ergebnistabelle angezeigt werden. Dafür benutzen wir die folgende while-Schleife:
while(odbc_fetch_row($res))
Die Funktion odbc_fetch_row ruft den jeweils nächsten Datensatz aus dem mit $res übergebenen Ergebnissatz zurück und gibt den Wert true (wahr) zurück. Nach dem letzten Datensatz, wenn also keine weiteren Datensätze folgen, gibt sie den Wert false (falsch) zurück. Die Bedingung der while-Anweisung ist somit so lange erfüllt (wahr), wie Datensätze im Ergebnissatz vorhanden sind. In diesem Fall wird der Programmcode innerhalb der geschweiften Klammern der while-Anweisung ausgeführt.
Dort werden mit der Funktion odbc_result die Datenfelder des jeweiligen Datensatzes ausgelesen und in den Variablen $Intp (Interpret), $Tit (Titel) und $Bestn (Bestellnummer) abgelegt. Im Anschluss daran wird mithilfe des echo-Befehls die Ergebnistabelle der Webseite gefüllt. Dies alles wiederholt sich, bis der letzte Datensatz des Ergebnissatzes gelesen wurde.
Abschließende Aufgaben
Zum Schluss wird noch das schließende Tag für die Tabelle ausgegeben:
echo '</table>';
Außerdem wird die noch geöffnete Datenquelle geschlossen:
ODBC_CLOSE($dbh)
Mehr Programmcode ist nicht notwendig. Diese wenigen Codezeilen sorgen dafür, dass eine Datenbank nach der Eingabe eines Besuchers durchsucht wird und die gefundenen Datensätze zurückgegeben und dem Besucher präsentiert werden.