Probleme SQL dans une boucle php

Fermé
Leenk - 5 juin 2008 à 15:41
 Leenk - 7 juin 2008 à 14:39
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.

2 réponses

redlifebig Messages postés 59 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 17 mars 2010 23
5 juin 2008 à 17:00
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
Bonjour,
Merci beaucoup pour ton aide, ça marche beaucoup mieux en effet !
0