Forum und email

sesam_fetch_array

(No version information available, might be only in CVS)

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() 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.

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 son 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 nom, la dernière colonne écrasera la précédente. Dans cette situation, utilisez de préférence sesam_fetch_row() ou bien, faites un alias de la colonne.

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

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-index sont numérotés à partir de 1.

CREATE TABLE ... ( ... MULTI(3) INT )
Les index associatifs utilisés 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.

Liste de paramètres

result_id

Un identifiant de résultats valide, retourné par la fonction sesam_query().

whence

whence est un paramètre optionnel pour une opération de récupération sur des curseurs scrollables, qui peut être défini à une constante prédéfinie parmis la liste suivante :

Valeurs valides pour le paramètre "whence"
Valeur Constante Signification
0 SESAM_SEEK_NEXT lecture séquentielle (après une récupération, le pointeur interne est défini à SESAM_SEEK_NEXT)
1 SESAM_SEEK_PRIOR lecture séquentielle en arrière (après une récupération, le pointeur interne est défini à SESAM_SEEK_PRIOR)
2 SESAM_SEEK_FIRST Revient à la première ligne (après une récupération, le pointeur interne est défini à SESAM_SEEK_NEXT)
3 SESAM_SEEK_LAST Se place à la dernière ligne (après une récupération, le pointeur interne est défini à SESAM_SEEK_PRIOR)
4 SESAM_SEEK_ABSOLUTE Se place à un numéro absolu de ligne donné par le paramètre offset (Commence à zéro. Après une récupération, le pointeur interne est défini à SESAM_SEEK_ABSOLUTE, et la valeur interne de la position est auto_incrémenté)
5 SESAM_SEEK_RELATIVE Se déplace par rapport à la position courante du curseur, où offset peut être une valeur de position positive ou négative.
Ce paramètre n'est valide que pour les curseurs scrollables.

Lors de l'utilisation de curseurs scrollables, le curseur peut être positionné sur le jeu de résultats librement. Si le paramètre whence est omis, les valeurs par défaut globales pour le type de scrollage (initialisé à SESAM_SEEK_NEXT, et définissable par la fonction sesam_seek_row()) sont utilisées. Si le paramètre whence est fourni, ses valeurs remplacent les valeurs globales par défaut.

offset

Uniquement évalué (et nécessaire) si le paramètre whence vaut soit SESAM_SEEK_RELATIVE, soit SESAM_SEEK_ABSOLUTE. Ce paramètre est uniquement valide pourles curseurs scrollables.

Valeurs de retour

Retourne un tableau qui correspond à la ligne lue dans le résultat result_id , ou FALSE s'il n'y a pas d'autres lignes.

Exemples

Example#1 Exemple avec sesam_fetch_array()

<?php
$result 
sesam_query("SELECT * FROM phone\n" .
                       
"  WHERE LASTNAME='" strtoupper($name) . "'\n".
                       
"  ORDER BY FIRSTNAME"1);
if (!
$result) {
    
/* ... erreur ... */
}
// Affiche la table
echo "<table border=\"1\">\n";
while ((
$row sesam_fetch_array($result)) && count($row) > 0) {
    echo 
"<tr>\n";
    echo 
"<td>" htmlspecialchars($row["firstname"]) . "</td>\n";
    echo 
"<td>" htmlspecialchars($row["lastname"]) . "</td>\n";
    echo 
"<td>" htmlspecialchars($row["phoneno"]) . "</td>\n";
    echo 
"</tr>\n";
}
echo 
"</table>\n";
sesam_free_result($result);
?>

Voir aussi