[PHP/MYSQL] 2 while pour 1 requete mysql

Résolu
MH -  
 MH -
Bonjour,

J'essai d'obtenir 2 tableaux identiques à partir d'une seule requete SQL, et de le sortir dans 2 listes différentes. Impossible d'avoir 2 résultats, et je ne pas faire 2 requêtes MySQL différentes car j'utilise RAND().



$result = mysql_query("SELECT nom, vote FROM objet ORDER BY RAND() LIMIT 12");

echo '<ul>';
while($ar= mysql_fetch_array($result)){
	echo '<li>'. $ar['nom']. '</li>';
}
echo "</ul>";

echo '<ul>';
while($ra= mysql_fetch_array($result)){
	echo '<li>'. $ra['vote']. '</li>';
}
echo "</ul>";



Merci de votre aide

A voir également:

7 réponses

le père
 
Bonjour

Si tu veux parcourir deux fois le résultat de la requête sans la relancer, le plus simple est d'utiliser mysql_data_seek qui ré-initialise le parcours :
echo '<ul>';
while($ar= mysql_fetch_array($result)){
	echo '<li>'. $ar['nom']. '</li>';
}
echo "</ul>";
mysql_data_seek($result,0);
echo '<ul>';
while($ra= mysql_fetch_array($result)){
	echo '<li>'. $ra['vote']. '</li>';
}
echo "</ul>";

Une autre solution serait d'enregistrer les valeurs qui t'intéressent dans un tableau dans ta première boucle, et de faire ta seconde boucle sur ce tableau :
$memo=array();
echo '<ul>';
while($ar= mysql_fetch_array($result)){
	echo '<li>'. $ar['nom']. '</li>';
        $memo[]=$ar['vote'];
}
echo "</ul>";

echo '<ul>';
foreach ($memo as $ra){
	echo '<li>'. $ra. '</li>';
}
echo "</ul>";
2
Stringman621 Messages postés 1308 Date d'inscription   Statut Membre Dernière intervention   340
 
Bonjour,

ton code ne serais pas plutôt :

$result = mysql_query("SELECT nom, vote FROM objet ORDER BY RAND() LIMIT 12");

echo '<table>';
while($ar= mysql_fetch_array($result)){
echo '<tr>';
echo '<td>'. $ar['nom']. '</td>';
echo '<td>'. $ra['vote']. '</td>';
echo '</tr>';
}
echo "</table>";

Je propose ça mais je ne suis pas sûr que ca te convienne (c'est pour faire avancer le schmilblick ;)
0
MH
 
Ceci est un test, je vois qu'il est indiqué " 1 réponse" mais impossible de la visualisé. EDIT : Et maintenant "2" alors que je ne vois que la mienne...
0
Stringman621 Messages postés 1308 Date d'inscription   Statut Membre Dernière intervention   340
 
J'ai répondu et je vois ma proposition...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
le père
 
Bonjour

Stringman621, tu n'as pas fait une réponse mais un commentaire.
Les commentaires mis directement dans la question ne sont pas visibles pour les non inscrits comme MH et moi. C'est une cause très fréquente de malentendus sur CCM
0
stringman621
 
Je remet mon message ;)

Bonjour,

ton code ne serais pas plutôt :

$result = mysql_query("SELECT nom, vote FROM objet ORDER BY RAND() LIMIT 12");

echo '<table>';
while($ar= mysql_fetch_array($result)){
echo '<tr>';
echo '<td>'. $ar['nom']. '</td>';
echo '<td>'. $ra['vote']. '</td>';
echo '</tr>';
}
echo "</table>";

Je propose ça mais je ne suis pas sûr que ca te convienne (c'est pour faire avancer le schmilblick ;)
0
MH
 
Au poil Monsieur le père, les deux marchent parfaitement.

Stringman621, merci mais je mentionnais tableau par réflexe, c'était plus le problème PHP que la syntaxe HTML qui me posait problème :)
0