problème avec mysql_fetch_array

Eléphant du PHP | 89 Messages

25 mai 2011, 15:06

bonsoir dans mon code j'ai un mysql_fetch_array impriqué dans un autre mysql_fetch_array(principal)
le problème est que j'ai un seul affichage du row du mysql_fetch_array (principal)(alors que si je le test tout seul) j'ai plusieurs affichage
merci
je voudrais savoir pourquoi

Code : Tout sélectionner

$query="SELECT * FROM projet_chefprojet where auteur='$user'"; var_dump($query); $resultat = mysql_query($query); var_dump($resultat); while($row = mysql_fetch_array($resultat, MYSQL_BOTH)) { var_dump($row); $nom=$row[1]; $auteur=$row[0]; $sql="select * from $nom "; var_dump($sql); $res=mysql_query($sql); $row=mysql_fetch_array($res,MYSQL_BOTH); } }

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 mai 2011, 16:28

Probablement parce que pour le premier, tu fais une boucle while pour traiter chacun des enregistrements retournés par ta requête, et que pour le second tu récupères uniquement le premier enregistrement sans rien en faire ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 89 Messages

25 mai 2011, 16:34

slt pour le deuxième row je l'affiche dans l'utilisateut clique sur le lien
merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

26 mai 2011, 11:34

hum d'ailleurs tu écrase le $row en cours de route c'est pas forcément top ;)

ensuite une requête dans une boucle c'est moyen, y a surement moyen de faire autrement ?

tu créer une table tuple dans la 1er table ? O_o

si oui ça ressemble a un problème de conception de la base ;)


@+
Il en faut peu pour être heureux ......

linesoft
Invité n'ayant pas de compte PHPfrance

26 mai 2011, 14:50

salut ,
ton code fonctionne mais ton problème viens du fait que tu écrases ton 1er $row qui doit contenir toutes les lignes de la table puisqu'il est dans la boucle while
par le 2éme $row qui lui ne contiendra toujours qu'une seul ligne .

Si tu veux pouvoir récupérer et traiter les résultats qui se trouve dans ton 1er et 2eme $row par la suite il faut que tu renommes ton 2eme $row en $row2[]
comme ça tu pourras accéder au contenu de ton 1er $row qui contiendra la totalité de ta table .
et $row2 contiendra chaque résultat de ta 2eme requête
$row2[0] = resultat requete 2 (1er passage de la boucle while)
$row2[1] = resultat requete 2 (2eme passage de la boucle while)