Probleme SQL dans une boucle php

Leenk -  
 Leenk -
Bonjour,
je débute en php et j'ai un petit problème que je n'arrive pas à résoudre,
J'explique ce que je veux faire :

Je crée une page "admin" qui sert à voir des informations sur des pages crées précédemment, on pourra les afficher, les supprimer, les modifier, mon problème est pour la modification.
Chacune de mes pages peut contenir un maximum de 10 images, donc pour la modification je peux choisir dans un menu déroulant le nombre de page que je veux rajouter (si il y a déjà 3 images par exemple, le menu déroulant ira donc de 1 à 7). Mon problème est que lorsque je compte le nombre d'image enregistré dans ma base de donné pour une page précise ça marche, mais lorsque je fais une boucle pour passer toutes mes pages en revu et compter pour chacune d'entres elles le nombre d'images qu'elles comporte, le count sql ne se fait que pour la première page de la boucle, j'obtiens alors le même nombre pour chacune de mes pages ...

Voilà un extrait du code :

<?php


mysql_connect("", "", "");
mysql_select_db("");

//récupération des pages déjà crées
$pageExist = mysql_query("select * from Page");

while($page = mysql_fetch_array($pageExist)) //parcoure des pages existantes
{
//récupération du nombre de div image déjà crées
$reqCountPict = mysql_query("SELECT COUNT(*) FROM Image WHERE ID_PAGE=".$page['ID_PAGE'].";");
$nbPictExist = mysql_num_rows($reqCountPict);

...

for($t=1; $t<=(10-$nbPictExist); $t++) //création des options de la liste déroulante
{
echo "<option value=\"".$t."\">".$t."</option>";
}

...

}

mysql_close();


ici c'est donc la variable $nbPictExist qui prend la valeur du premier compte mais quand on repasse dans la boucle les fois suivantes, elle garde toujours la même valeur ...

Je vous remercie d'avance.
A voir également:

2 réponses

redlifebig Messages postés 60 Statut Membre 23
 
Bonsoir

Si tu vérifie bien ton code tu verras que:

tu fait un $reqCountPict = mysql_query("SELECT COUNT(*) FROM Image WHERE ID_PAGE=".$page['ID_PAGE'].";");
donc $reqCountPict est une resource qui contien une ligne avec le nobre d'images

après tu fait $nbPictExist = mysql_num_rows($reqCountPict);
donc t'aura toujours come résultat 1 car mysql_num_rows retourn le nombre de lignes d'un résultat

pour avoir le bon résultat fais plutôt
$resCount=mysql_fetch_array($reqCountPict);
$nbPictExist=$resCount[0];
1
Leenk
 
Bonjour,
Merci beaucoup pour ton aide, ça marche beaucoup mieux en effet !
0