Boucles While imbriqués [Résolu]

Johandev35 20 Messages postés vendredi 15 décembre 2006Date d'inscription 7 janvier 2009 Dernière intervention - 6 janv. 2009 à 19:23 - Dernière réponse : Johandev35 20 Messages postés vendredi 15 décembre 2006Date d'inscription 7 janvier 2009 Dernière intervention
- 7 janv. 2009 à 15:35
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>
Afficher la suite 

6 réponses

Répondre au sujet
Johandev35 20 Messages postés vendredi 15 décembre 2006Date d'inscription 7 janvier 2009 Dernière intervention - 7 janv. 2009 à 15:35
+3
Utile
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 :)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Johandev35
Johandev35 20 Messages postés vendredi 15 décembre 2006Date d'inscription 7 janvier 2009 Dernière intervention - 6 janv. 2009 à 19:26
0
Utile
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 !!
Commenter la réponse de Johandev35
krolenain 149 Messages postés lundi 7 février 2005Date d'inscription 6 février 2009 Dernière intervention - 6 janv. 2009 à 20:27
0
Utile
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
Commenter la réponse de krolenain
Teclis01 1423 Messages postés mardi 14 décembre 2004Date d'inscription 29 décembre 2012 Dernière intervention - 6 janv. 2009 à 20:53
0
Utile
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
Commenter la réponse de Teclis01
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 6 janv. 2009 à 21:43
0
Utile
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 -
Commenter la réponse de kohntark
Johandev35 20 Messages postés vendredi 15 décembre 2006Date d'inscription 7 janvier 2009 Dernière intervention - 7 janv. 2009 à 15:07
0
Utile
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'];
}
}
}
}
Commenter la réponse de Johandev35

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.