sesam_fetch_array

(PHP 3 CVS only)

sesam_fetch_array -- Liefert eine Zeile als assoziatives Array

Beschreibung

array sesam_fetch_array ( string result_id [, int whence [, int offset]])

Liefert ein Array, das der gelesenen Zeile entspricht oder FALSE falls es keine weiteren Zeilen mehr gibt.

sesam_fetch_array() ist eine Alternative zur Funktion sesam_fetch_row(). Die Daten werden anstatt in numerischen Indizes des Ergebnisarrays in assoziativen Indizes gespeichert, wobei die Feldnamen als Indizes benutzt werden.

result_id ist eine gültige Ergebniskennung (???) der Funktion sesam_query() (nur Abfragen vom Typ select!).

Für die gültigen Werte der optionalen Parameter whence und offset im Detail siehe sesam_fetch_row().

Die Funktion sesam_fetch_array() holt eine mit der spezifizierten Ergebniskennung (???) assoziierte Datenzeile. Die Zeile wird als assoziatives Array zur Verfügung gestellt. Jede Ergebnisspalte wird mit einem assoziativen Index gleich dem Spaltennamen (aka. field) abgespeichert. Die Spaltennamen werden in Kleinschreibung konvertiert dargestellt.

Spalten ohne Feldnamen (z.B. Ergebnisse von arithmetischen Operationen) und leere Felder werden im Array nicht gespeichert. Haben zwei oder mehr Spalten im Ergebnis den selben Namen, bekommt diesen die letzte Spalte. In diesem Fall empfiehlt sich der Einsatz von sesam_fetch_row() oder Alias-Definitionen für die Spalten.

SELECT TBL1.COL AS FOO, TBL2.COL AS BAR FROM TBL1, TBL2

Eine Spezialbehandlung erlaubt den Zugriff auf "multiple field" Spalten (die sonst alle den selben Spaltennamen haben würden). Für jede Spalte eines "multiple field" wird der Name gebildet durch Anhängen von "(n)", wobei n den Sub-Index der "multiple field" Spalte darstellt und Werte von 1 bis zum deklarierten Wiederholungsfaktor annehmen kann. Zur Übereinstimmung mit der entsprechenden Abfragesyntax sind die Indizes n i c h t null-basiert. Für eine Spalte der Definition:

CREATE TABLE ... ( ... MULTI(3) INT )

ergäben sich die assoziativen Indizes für die einzelnen "multiple fields" als "multi(1)", "multi(2)", and "multi(3)".

Nachfolgende Aufrufe von sesam_fetch_array() liefern die nächste Zeile (oder die vorhergehende, höchste/niedrigste je nach den Attributen) im Ausgabesatz oder FALSE wenn keine Zeilen mehr verfügabr sind.

Beispiel 1. SESAM fetch rows

<?php
$result = sesam_query ("SELECT * FROM phone\n".
                       "  WHERE LASTNAME='".strtoupper($name)."'\n".
                       "  ORDER BY FIRSTNAME", 1);
if (! $result) {
    ... error ...
}
// print the table:
print "<TABLE BORDER>\n";
while (($row = sesam_fetch_array ($result)) && count($row) > 0) {
    print " <TR>\n";
    print "  <TD>".htmlspecialchars($row["firstname"])."</TD>\n";
    print "  <TD>".htmlspecialchars($row["lastname"])."</TD>\n";
    print "  <TD>".htmlspecialchars($row["phoneno"])."</TD>\n";
    print " </TR>\n";
}
print "</TABLE>\n";
sesam_free_result ($result);
?>

Siehe auch: sesam_fetch_row() (liefert ein indiziertes Array)