sesam_fetch_row

(PHP 3 CVS only)

sesam_fetch_row -- Lit une ligne dans un tableau

Description

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

sesam_fetch_row() retourne un tableau qui correspond à la ligne lue dans le résultat result_id, ou FALSE s'il n'y a plus de ligne.

Le nombre de colonnes du résultat est retourné dans un élémen du tableau associatif retourné $array["count"]. Comme certaines lignes peuvent être vides, la fonction count() ne peut être utilisée avec le tableau ainsi retourné par sesam_fetch_row().

result_id est un identifiant de résultat valide retourné par sesam_query() (avec une requête de selection seulement!).

whence est un parmètre optionnel lors d'une opération de lecture sur un curseur à défilement, qui peut prendre une des valeurs suivantes :

Tableau 1. Valeurs valides pour whence

ValeurConstanteSignification
0SESAM_SEEK_NEXT Lecture séquentielle (après la lecture, la position est déplacé à SESAM_SEEK_NEXT)
1SESAM_SEEK_PRIOR Lecture séquentielle à rebours (après la lecture, la position est déplacé à SESAM_SEEK_PRIOR)
2SESAM_SEEK_FIRST Repositionnement au début (après la lecture, la position est déplacée à SESAM_SEEK_NEXT)
3SESAM_SEEK_LAST Repositionnement à la fin (après la lecture, la position est déplacée à SESAM_SEEK_PRIOR)
4SESAM_SEEK_ABSOLUTE Repositionnement absolu à offset (index commencant à 0. Après la lecture, la position est placé à SESAM_SEEK_ABSOLUTE, et le pointeur interne est auto-incrémenté).
5SESAM_SEEK_RELATIVE Repositionnement relatif à offset, où offset peut être positif ou négatif
Ce paramètre n'est valable que pour les curseurs à défilement.

Lors de l'utilisation de curseurs à défilement, le curseur peut être librement repositionné. Si le paramètre whence est omis, les valeur par défaut seront utilisées (initialisées à : SESAM_SEEK_NEXT, et modifiée par sesam_seek_row()). Si whence est fourni, sa valeur remplacera les valeurs par défaut.

offset est un parmètre optionnel qui n'est utilisé (et nécessaire) que si whence vaut soit SESAM_SEEK_RELATIVE ou SESAM_SEEK_ABSOLUTE. Ce paramètre n'est valable que pour les curseurs à défilement.

sesam_fetch_row() lit une ligne de données dans le résultat result_id. La ligne est retournée sous forme d'un tableau (indexé de 0 à $array["count"]-1). Les champs peuvent être vides : il faut vous assurer de leur existence en utilisant la fonction isset(). Le type de la valeur retournée dépend du type SQL déclaré dans la base (voir introduction SESAM pour connaître les conversion utilisées). Les champs multiples SESAM sont linéarisés, et traités comme autant de colonnes.

Les prochains appels à sesam_fetch_row() liront la prochaine ligne (ou la précédente, ou la n-ième, suivant le type de défilement) dans le résultat, ou FALSE, s'il n'y a plus de lignes.

Exemple 1. Exemple avec sesam_fetch_row()

<?php
$result
= sesam_query ("SELECT * FROM phone\n".
                       
"  WHERE LASTNAME='".strtoupper($name)."'\n".
                       
"  ORDER BY FIRSTNAME", 1);
if (!
$result) {
    ...
erreur ...
}
// Affiche la table dans l'ordre inverse
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";
    
// utilise la valeur implicite de SESAM_SEEK_PRIOR
    
$row = sesam_fetch_row ($result);
}
print
"</TABLE>\n";
sesam_free_result ($result);
?>

Voir aussi sesam_fetch_array() qui retourne un tableau associatif et sesam_fetch_result() qui retourne plusieurs lignes en même temps.