plusieurs mysql_fetch_array() pour un mysql_query()

plusieurs mysql_fetch_array() pour un mysql_query() - SQL/NoSQL - Programmation

Marsh Posté le 16-09-2003 à 12:10:17    

Bonjour!
je ne sais pas trop si je dois poster ca ici ou dans la rubrique php, mais bon vous me direz.. ;)
 
 
oui alors ça, ça me mets sur le cul, on ne peut pas utiliser le resultat de mysql_query() pour faire plusieur mysql_fetch_array()!
 
genre:
 

Code :
  1. $sql = "SELECT id, nom  FROM languages";
  2. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  3. while($data = mysql_fetch_array($req))
  4. {
  5. ...
  6. }
  7. while($data = mysql_fetch_array($req))
  8. {
  9. ...
  10. }


 
et ca même si on sauvegarde $req comme ça:
 
 

Code :
  1. $sql = "SELECT id, nom  FROM languages";
  2. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  3. $req_save = $req;
  4. while($data = mysql_fetch_array($req))
  5. {
  6. ...
  7. }
  8. $req = $req_save;
  9. while($data = mysql_fetch_array($req))
  10. {
  11. ...
  12. }


 
vous y croyez vous? c'est pas logique!!
 
si quelqu'un a une explication et/ou une astuce pour éviter quand meme de faire deux requettes a la suite pour avoir la meme chose ;)
 
merci d'avance!
 
 

Reply

Marsh Posté le 16-09-2003 à 12:10:17   

Reply

Marsh Posté le 16-09-2003 à 12:19:09    

c'est tout à fait logique, mysql_fetch_array() déplace le pointeur de résultat (c'est écrit dans la doc) à chaque appel, donc après ta première boucle, le pointeur est à la fin des résultats
 
pour redéplacer le pointeur de résultat, utilises mysql_data_seek()


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 16-09-2003 à 12:21:24    

tu as raison! comme quoi que deux paires d'yeux vallent mieux qu'une sur le manuel ;)
 
merci beaucoup! :)

Reply

Marsh Posté le 16-09-2003 à 12:27:29    

Tiens, salut Willy :D

Reply

Marsh Posté le 16-09-2003 à 12:28:14    

salut ma poule!

Reply

Marsh Posté le 16-09-2003 à 13:41:20    

Tu connais pas la réponse à çà par hasard :whistle: http://forum.hardware.fr/forum2.ph [...] subcat=395

Reply

Marsh Posté le 25-09-2003 à 14:32:15    

je sais pas ce que tu dois faire mais le plus simple reste qd meme a traiter le resultat dans le même while

Reply

Marsh Posté le 25-09-2003 à 22:53:41    

ben en fait je genere un formulaire dynamiquement et donc pour qu'il soit cohérent, je ne peux pas tous faire dans une boucle while..
 
 
en fait si, il suffirait que j'enregistre les differentes partie dans des chaines de caracteres et que ensuite a la sortie dela boucle je les affiches au bon endroit mais je ne trouve pas ca tres propre....
 
merci cependant de ton aide ;)
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed