sesam_fetch_array

(PHP 3 CVS only)

sesam_fetch_array -- Lit une ligne dans un tableau associatif

Description

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

sesam_fetch_array() retourne un tableau qui correspond à la ligne lue dans le résultat result_id, ou FALSE si il n'y a pas d'autres lignes.

sesam_fetch_array() est une version alternative de sesam_fetch_row(). Au lieu de stocker les données dans un tableau à indice numérique, il enregistre les données dans un tableau associatif, en utilisant les noms des champs comme clés.

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

Pour connaître les valeurs valides des options whence et offset, reportez vous à sesam_fetch_row().

sesam_fetch_array() lit une ligne de données dans le résultat result_id. La ligne est retournée sous forme d'un tableau associatif. Chaque colonne est enregistrée avec leur nom comme index. Les noms des colonnes sont convertis en minuscules.

Les colonnes sans nom (par exemple, les résultats d'opérations arithmétiques) et les champs vides ne sont pas stockés dans ce tableau. De plus, si deux colonnes ont le même noms, la dernière colonne écrasera la précédente. Dans cette situation, utilisez de préférence sesam_fetch_row() ou bien, faîtes un alias de la colonne.

Exemple 1. Alias de colonnes avec SESAM

SELECT TBL1.COL AS FOO, TBL2.COL AS BAR FROM TBL1, TBL2</programlisting>

Une gestion spéciale permet de lire les champs multiples, qui sinon, auraient toutes le même nom. Pour chaque colonne d'un champ multiple, le nom d'index est créé en ajoutant le numéro de sous-index à la suite du nom de la colonne. Ces sous indices sont numérotés à partir de 1.

Exemple 2. Lire les champs multiples de SESAM

CREATE TABLE ... ( ... MULTI(3) INT )
Les index associatifs utilisé pour les valeurs individuelles du champ multiple sont : "multi(1)", "multi(2)", et "multi(3)", respectivement.

Les prochains appels à sesam_fetch_array() liront la prochaine ligne (ou la précédente, ou la n-ième, suivant les attributs de défilement), jusqu'à ce qu'il n'y ait plus de lignes.

Exemple 3. Exemple avec sesam_fetch_array()

<?php
$result
= sesam_query ("SELECT * FROM phone\n".
                       
"  WHERE LASTNAME='".strtoupper($name)."'\n".
                       
"  ORDER BY FIRSTNAME", 1);
if (!
$result) {
    ...
error ...
}
// Affiche la 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);
?>

Voir aussi sesam_fetch_row() qui retourne un tableau numérique.