Page 1 sur 1

Utiliser plusieurs fois le résultat d'une requête SQL

Posté : 05 nov. 2015, 15:05
par Liandar
Bonjour à tous,

J'ai une question qui peut vous paraître toute bête mais après deux jours de recherche intensive (tousles forums, Google, etc.), j'en peux plus de ne pas trouver la solution et surtout de ne pas comprendre.

Voici mon problème :

J'arrive a récupérer des résultats d'une requête SQL, mais je ne peux les utiliser qu'une fois, après quoi, ma variable devient VIDE.

<?php
     // A cette étape, nous sommes déjà connecté à la BDD et sous la bonne database.
     
     // J'éxecute ma requête SQL et je met le résultat dans la variable $PIVaineParNATOP
     $sql = "SELECT * FROM MaTable";
     $PIVaineParNATOP = mysql_query($sql) or die("La requête a échoué : ".mysql_error());

     // A cette étape, $PIVaineParNATOP = "Ressource #6", il me faut donc lire ligne par ligne dans cette ressource pour récupérer mes données.

     while($ligne = mysql_fetch_row($PIVaineParNATOP)) {
          echo $ligne[0]."<br>";
     }

     // Tout fonctionne, cela me ressort bien chaque NATOP, résultat de ma requête SQL

     // C'est ici que les galères commencent.....

     // Je veux réafficher mes données !

     echo "<br><br><hr><br><br>";

     while($ligne = mysql_fetch_row($PIVaineParNATOP)) {
          echo $ligne[0]."<br>";
     }
?>

PROBLEME :
Ma première boucle WHILE fonctionne correctement.
Ma deuxième boucle WHILE ne me retourne rien. (comme-ci que ma variable $PIVaineParNATOP était devenue vide).

HELPPP ME PLEASEEEEE :)

Merci à vous

Re: Utiliser plusieurs fois le résultat d'une requête SQL

Posté : 05 nov. 2015, 15:42
par @rthur
Modération :
Titre modifié pour + de clarté

Re: Utiliser plusieurs fois le résultat d'une requête SQL

Posté : 05 nov. 2015, 16:45
par Liandar
Réponse trouvée sur un autre forum.
Pour ceux que cela peut aider :

Pour mon problème, il y a un pointeur dans le résultat de la requête (c'est ce qui permet à ma boucle de s'arrêter). Il faut donc que je réinitialise le pointeur entre les 2 boucles par appel à mysql_data_seek :
while($ligne = mysql_fetch_row($PIVaineParNATOP)) {
// ...
}
// ...
mysql_data_seek($PIVaineParNATOP, 0);
while($ligne = mysql_fetch_row($PIVaineParNATOP)) {
// ...
}
Cette fonction m'a littéralement sauvé la vie.

Re: [RESOLU] Utiliser plusieurs fois le résultat d'une requête SQL

Posté : 05 nov. 2015, 20:31
par @rthur
Merci pour le partage de la solution :)