sesam_fetch_row

(PHP 3 CVS only)

sesam_fetch_row -- Lesen einer Zeile als Array

Beschreibung

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

Liefert ein Array entsprechend der gelesenen Zeile oder FALSE nach de letzten gefundenen Zeile.

Die Anzahl der Spalten im Ausgabesatz wird als Element des assoziativen Arrays $array["count"] geliefert. Da Ergebnisspalten auch leer sein können, kann die Funktion count() nicht auf das Ergebnis der Funktion sesam_fetch_row() angewendet werden.

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

whence ist ein optionaler Parameter für eine "fetch"-Operation (???) bei "scrollable" Cursor und kann auf folgende vordefinierte Werte gesetzt werden:

Tabelle 1. Gültige Werte für Parameter "whence"

ValueConstantMeaning
0SESAM_SEEK_NEXTsequentielles Lesen (nach "fetch" wird der interne Standardwert auf SESAM_SEEK_NEXT gesetzt)
1SESAM_SEEK_PRIORsequentielles Lesen rückwärts (nach "fetch" wird der interne Standardwert auf SESAM_SEEK_PRIOR gesetzt)
2SESAM_SEEK_FIRSTzurück zur ersten Zeile (nach "fetch" wird der interne Standardwert auf SESAM_SEEK_NEXT gesetzt)
3SESAM_SEEK_LASTsuche letzte Zeile (nach "fetch" wird der interne Standardwert auf SESAM_SEEK_PRIOR gesetzt)
4SESAM_SEEK_ABSOLUTEsuche Zeilen mit der Nummer definiert durch offset (Null-basierte Indizierung (nach "fetch" wird der interne Standardwert auf SESAM_SEEK_ABSOLUTE gesetzt und der interne offset-Wert wird automatisch hochgesetzt)
5SESAM_SEEK_RELATIVEsuche relativ zur aktuellen Position; offset kann positiv oder negativ sein.
Dieser Parameter ist nur für "scrollable" Cursors gültig.

Bei "scrollable" kann der Cursor beliebig im Ausgabesatz positioniert werden. Wird der optionale Parameter whence nicht benutzt, werden die globalen Standardwerte für den Scroll-Typ verwendet (Initialiwert: SESAM_SEEK_NEXT, einstellbar mit der Funktion sesam_seek_row()). Bei Verwendung des Parameters whence ersetzen dessen Werte die golbalen Standardwerte.

offset ist ein optionaler Parameter, der nur wirkt (und auch nur benötigt wird), wenn whence entweder den Wert SESAM_SEEK_RELATIVE oder SESAM_SEEK_ABSOLUTE hat. Dieser Parameter ist nur für "scrollable" Cursors gültig.

sesam_fetch_row() holt eine Datenzeile aus dem Ergebnis mit der zugeordneten Ergebniskennung (???). Die Zeile wird als Array geliefert, wobei die indizierten Werte zwischen 0 und $array["count"]-1) liegen. Da Felder auch leer sein können, muß die Existenz eines mit der PHP-Funktion isset() verifiziert werden. Der Typ der gelieferten Felder ist abhängig von der entsprechenden SQL-Typdeklaration düe die Spalten (siehe SESAM overview für die angewendeten Umsetzungen). SESAM "multiple fields" sind "inlined" (???) und werden wie eine Spaltenfolge behandelt.

Nachfolgende Aufrufe von sesam_fetch_row() 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 in backward order
print "<TABLE BORDER>\n";
$row = sesam_fetch_row ($result, SESAM_SEEK_LAST);
while (is_array($row)) {
    print " <TR>\n";
    for($col = 0; $col < $row["count"]; ++$col) {
        print "  <TD>".htmlspecialchars($row[$col])."</TD>\n";
    }
    print " </TR>\n";
    // use implied SESAM_SEEK_PRIOR
    $row = sesam_fetch_row ($result);
}
print "</TABLE>\n";
sesam_free_result ($result);
?>

Siehe auch: Funktion sesam_fetch_array() (liefert ein assoziatives Array ) und sesam_fetch_result() (liefert viele Zeilen pro Aufruf (???))