Boucles While imbriqués

[Résolu]
Signaler
Messages postés
20
Date d'inscription
vendredi 15 décembre 2006
Statut
Membre
Dernière intervention
7 janvier 2009
-
Messages postés
20
Date d'inscription
vendredi 15 décembre 2006
Statut
Membre
Dernière intervention
7 janvier 2009
-
Bonjour,
je poste un petit message ici pour avoir un peu d'aide car j'ai un problème que je n'arrive pas a résoudre.
Voila, j'ai 2 boucles while imbriqué qui vont chercher des données dans ma base de données mysql.

Le probleme c'est que j'ai une belle erreure :

Notice: Undefined index: id_site in C:\Program Files\EasyPHP 2.0b1\www\leSitePratique\more.php on line 128

Et cette erreure pour tout les indexs du dernier while.

Si vous avez une piste, merci de votre aide, car la je bloque !



$rq_ss_cat mysql_query("SELECT * FROM ss_categorie WHERE id_cat $id_cat");
 if (mysql_num_rows($rq_ss_cat) > 0) {
     while ($data_ss_cat = mysql_fetch_assoc($rq_ss_cat))
 {
 $id_ss_cat = $data_ss_cat['id_ss_cat'];
 $nom_ss_categorie = $data_ss_cat['nom_ss_cat'];
 echo "<tr>";
 echo "<td> $nom_ss_categorie <td>";
 
 
 
 $rq_site mysql_query("SELECT * FROM site WHERE id_ss_cat $id_ss_cat");
 if (mysql_num_rows($rq_site) > 0) {
     while ($data_site = mysql_fetch_array($rq_site))
 {
 $id_site = $data_cat['id_site'];
 $nom_site = $data_cat['nom_site'];
 $url_site = $data_cat['url_site'];
 $hits_site = $data_cat['hits_site'];
 }
}
}
 }


Merci d'avance a vous !!</td></td></tr>

6 réponses

Messages postés
20
Date d'inscription
vendredi 15 décembre 2006
Statut
Membre
Dernière intervention
7 janvier 2009

désoler, j'ai fais mon gros boulet !
ça ne marchais pas tout simplement parceque je mettais :

$data_cat['id_site'];

alors qu'il fallait bien evidement mettre :

$data_site['id_site'];


Merci quand meme :)
Messages postés
20
Date d'inscription
vendredi 15 décembre 2006
Statut
Membre
Dernière intervention
7 janvier 2009

Désoler pour ce premier post raté !!
Je réécris mon post.

Bonjour,
je poste un petit message ici pour avoir un peu d'aide car j'ai un problème que je n'arrive pas a résoudre.
Voila, j'ai 2 boucles while imbriqué qui vont chercher des données dans ma base de données mysql.

Le probleme c'est que j'ai une belle erreure :

Notice: Undefined index: id_site in C:\Program Files\EasyPHP 2.0b1\www\leSitePratique\more.php on line 128

Et cette erreure pour tout les indexs du dernier while.

Si vous avez une piste, merci de votre aide, car la je bloque !




$rq_ss_cat mysql_query("SELECT * FROM ss_categorie WHERE id_cat $id_cat");
if (mysql_num_rows($rq_ss_cat) > 0) {
while ($data_ss_cat = mysql_fetch_assoc($rq_ss_cat))
{
 $id_ss_cat = $data_ss_cat['id_ss_cat'];
$nom_ss_categorie = $data_ss_cat['nom_ss_cat'];
echo "<tr>";
echo "<td> $nom_ss_categorie <td>";
 
$rq_site mysql_query("SELECT * FROM site WHERE id_ss_cat $id_ss_cat");
if (mysql_num_rows($rq_site) > 0) {
 while ($data_site = mysql_fetch_array($rq_site))
 {
 $id_site = $data_cat['id_site'];
$nom_site = $data_cat['nom_site'];
$url_site = $data_cat['url_site'];
$hits_site = $data_cat['hits_site'];
 }
}
}
 }


Merci d'avance a vous !!
Messages postés
149
Date d'inscription
lundi 7 février 2005
Statut
Membre
Dernière intervention
6 février 2009

Salut,
2 possibilités: soit ta clé primaire n'est pas id_site dans ta table, soit ta requete $rq_site n'est pas bonne pour une quelconque raison.
Essaie de faire un echo de ton $rq_site est d'exécuter la requete direct dans phpmyadmin
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
et indente ton code >_<

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

Pour déboguer :$rq_site mysql_query("SELECT * FROM site WHERE id_ss_cat $id_ss_cat");

>if (false $rq_site mysql_query("SELECT * FROM site WHERE id_ss_cat $id_ss_cat")) die(mysql_error());

Si c'est une erreur de requête, comme le suggère Krolenain, tu le verras tout de suite.

Et indente !!! ... mais pas au point de ton premier poste hein 

Kohntark -
Messages postés
20
Date d'inscription
vendredi 15 décembre 2006
Statut
Membre
Dernière intervention
7 janvier 2009

Bonjour, et merci à vous tous pour vos réponses :)
Je vais essayer d'expliquer un peu plus clairement ma base de données pour vous aidez a comprendre mon probleme.
J'ai les tables suivantes :
catégorie(id_cat, nom_cat);
ss_catégorie(id_ss_cat, nom_ss_cat, #id_cat);
site(id_site, nom_site, url_site, hits_site, #id_ss_cat);

J'ai essayé la technique de Kohntark, mais ce n'est pas une erreure de requete, j'ai donc fais un echo de ma requete :
echo "SELECT * FROM site WHERE id_ss_cat = $id_ss_cat"

Resultat :
SELECT * FROM site WHERE id_ss_cat = 4
SELECT * FROM site WHERE id_ss_cat = 5
SELECT * FROM site WHERE id_ss_cat = 6

Ce qui est normal car il y a 3 sous catégorie, dans la catégorie.
En fait je veux selectionner les ss_catégories de la catégorie 10 par exemples, et afficher les sites de chaques catégories.

Par exemple :

Gaming :
www.Jeux_video.com
Prog :
www.phpcs.com

systeme d'exploitation :
www.ubuntu.com


Je vous remet mon code indenté cette fois :

$rq_ss_cat mysql_query("SELECT * FROM ss_categorie WHERE id_cat $id_cat");
if (mysql_num_rows($rq_ss_cat) > 0) {
while ($data_ss_cat = mysql_fetch_assoc($rq_ss_cat))
{
$id_ss_cat = $data_ss_cat['id_ss_cat'];
$nom_ss_categorie = $data_ss_cat['nom_ss_cat'];
echo "<tr>";
echo "<td> $nom_ss_categorie <td>";

$rq_site mysql_query("SELECT * FROM site WHERE id_ss_cat $id_ss_cat");
if (mysql_num_rows($rq_site) > 0) {
while ($data_site = mysql_fetch_array($rq_site))
{
$id_site = $data_cat['id_site'];
$nom_site = $data_cat['nom_site'];
$url_site = $data_cat['url_site'];
$hits_site = $data_cat['hits_site'];
}
}
}
}