(PHP 4, PHP 5)
mysql_data_seek — Déplace le pointeur interne de résultat MySQL
Cette extension est obsolète depuis PHP 5.5.0, et sera supprimée dans le futur. À la place, les extensions MySQLi ou PDO_MySQL doivent être utilisées. Voir aussi le guide MySQL : choix de l'API ainsi que la FAQ associée pour plus d'information. Voici les alternatives à cette fonction :
PDO::FETCH_ORI_ABS
$result
, int $row_number
)
mysql_data_seek() déplace le pointeur
interne de résultat, dans le résultat associé à
l'identifiant de résultat result_identifier
.
Il le fait pointer à la ligne row_number
.
Le prochain appel à une fonction MySQL de récupération de données,
comme la fonction mysql_fetch_assoc()
retournera cette ligne.
row_number
commence à 0.
row_number
doit être une valeur qui
va de 0 à mysql_num_rows() - 1.
Cependant, si le résultat est vide, un row_number
de 0 échouera avec une erreur E_WARNING
et mysql_data_seek() retournera FALSE
.
result
La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().
row_number
La position de la ligne désirée pour le nouveau pointeur de résultats.
Cette fonction retourne TRUE
en cas de
succès ou FALSE
si une erreur survient.
Exemple #1 Exemple avec mysql_data_seek()
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Connexion impossible : ' . mysql_error());
}
$db_selected = mysql_select_db('sample_db');
if (!$db_selected) {
die('Sélection de base de données impossible : ' . mysql_error());
}
$query = 'SELECT nom_famille, prenom FROM amis';
$result = mysql_query($query);
if (!$result) {
die('Requête échec : ' . mysql_error());
}
/* Récupération des lignes en ordre inverse */
for ($i = mysql_num_rows($result) - 1; $i >= 0; $i--) {
if (!mysql_data_seek($result, $i)) {
echo "Ne peut pointer vers la ligne $i : " . mysql_error() . "\n";
continue;
}
if (!($row = mysql_fetch_assoc($result))) {
continue;
}
echo $row['nom_famille'] . ' ' . $row['prenom'] . "<br />\n";
}
mysql_free_result($result);
?>
Note:
La fonction mysql_data_seek() peut être utilisée en conjonction avec mysql_query(), mais pas avec la fonction mysql_unbuffered_query().