PRATIQUE PHP 
Déplacer le pointeur d'une requête MySQL
 
"Comment, en PHP, reprendre au début le parcours d'un résultat MySQL, une fois qu'on a déjà déplacé le pointeur de lecture ?" (14/01/2005)

 

  Forum

Réagissez dans les forums de JDN Développeurs

Cela ne devrait pas être nécessaire : idéalement le résultat d'une requête devrait être stocké dans une variable, ou un tableau de variables, une fois pour toutes, afin de ne pas surcharger le serveur de requêtes redondantes. Il est préférable de ne solliciter MySQL que pour de nouvelles requêtes, et de laisser le langage de script se charger de traiter intelligemment les résultats stockés en variable.

Il peut cependant arriver que l'on doive reprendre le parcours d'un résultat à partir de zéro. Pour cela, il faut utiliser la fonction mysql_data_seek(). Celle-ci permet de déplacer le pointeur de lecture à n'importe quelle ligne de résultat… et donc peut servir à revenir à la ligne 0 (la première, logiquement).

Notez que mysql_data_seek() ne marche pas avec les requêtes lancée à l'aide de mysql_unbuffered_query() (qui ne prépare pas les résultats à la lecture), seulement mysql_query().

$res = mysql_query($sql);
// divers traitements
mysql_data_seek($res, 0);
$row = mysql_fetch_row($res);

 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page