Faire 2 fetch_array sur une meme requete

Signaler
Messages postés
44
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
19 décembre 2013
-
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
-
j'aimerais pour une meme requete faire 2 fois : $aa=mysql_fetch_array($bb);
je m'explik:
- une fois pour l'utiliser pour l'affichage d'informations
- puis un peu plus loin dans un while

--------------------------------------------------------------------------------------------------------------------------

//requete principale
   $req="select a, b, c, d from blablabla where blabla=blabla";
   $reqq=mysql_query($req) or die(mysql_error());
   $rslt=mysql_fetch_array($reqq, MYSQL_ASSOC);
.
.
. AFFICHAGE AVEC $rslt
.
.
while($list=mysql_fetch_array($reqq)){
.
. AFFICHAGE AVEC $list
.
}

--------------------------------------------------------------------------------------------------------------------------

merci d'avance pour vos reponses...

5 réponses

Messages postés
195
Date d'inscription
mardi 22 février 2005
Statut
Membre
Dernière intervention
26 octobre 2009
1
tu peu faire deux mysql_query sur la meme requete et ensuite faire un mysql_fetch_array sur des resultats différents

perso je trouve ça idiot de vouloir faire deux fetch array sur la meme requete, je suis sur que tu dois pouvoir optimiser ton code pour tout faire dans la meme boucle, mais bon après je le connais pas ton code
Messages postés
44
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
19 décembre 2013
1
non, jsui obligé, parce que j'affiche des données avant mon while obligatoirement (qui alimentent mon tableau)...
Messages postés
403
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
7 août 2020
1
Bonjour,

il suffit juste remettre le pointeur du résultat a 0 :

//requete principale
   $req="select a, b, c, d from blablabla where blabla=blabla";
   $reqq=mysql_query($req) or die(mysql_error());
   $rslt=mysql_fetch_array($reqq, MYSQL_ASSOC);
.
.
. AFFICHAGE AVEC $rslt
.
 mysql_data_seek($reqq,0);

while($list=mysql_fetch_array($reqq)){
.
. AFFICHAGE AVEC $list
.
}

Bonne Prog
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Hello,

ouais...ou de se reservir de $rslt avant de balancer le while pour l'affichage...plutôt que d'aller chercher 2 fois la même chose.
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
Salut,

"non, jsui obligé, parce que j'affiche des données avant mon while obligatoirement (qui alimentent mon tableau)..."

J'ai vraiment du mal à comprendre... Comment peut-on être "obligé" de faire deux itérations sur un résultat ?

Il est TOUJOURS possible de séparer le traitement de l'affichage, et donc, de faire l'intégralité du traitement avant d'afficher le moindre caractère.
Donc, il est TOUJOURS possible de n'itérer qu'une fois sur un résultat d'une requête.

Et si je me plante, je suis curieux de voir le cas qui fait que c'est pas possible...