(No version information available, might be only in CVS)
sesam_fetch_array — Lit une ligne dans un tableau associatif
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 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.
Un identifiant de résultats valide, retourné par la fonction sesam_query() .
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 :
Tableau 283. 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.
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.
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.
Exemple 2388. 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
);
?>
sesam_fetch_row() |