Je voudrais afficher Division, puis les catégories sous chaque division et sous-catégories qui est sous chaque catégorie. Mais quand je fais mes tâches pendant que je ne reçois pas le bon résultat ...PHP et MYSQL: faire pendant que ça ne marche pas
exemple de ce que je veux:
Division Name
Categorie
Sub-categorie
Sub-categorie
Sub-categorie
Categorie 2
Sub-categorie 2
Sub-categorie 2
Sub-categorie 2
Division Name 2
Categorie 3
...
Sanitaire (qui est une division)
Produits papiers (qui est un catégorie)
Distributeurs assortis (c'est un subcategorie)
Distributeurs assortis (c'est la même subcategorie ...)
Distributeurs assortis (et encore ...)
Distributeurs assortis (et encore ...)
(...) je reçois le même subcategorie pour 10 lignes
Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près « ET
__Produits_Sous_Cat
.id_langue = 1 ET__Produits_Sous_Cat
.Visible = « 1 » » à la ligne 1
voici mon code:
$LANG = 1;
mysql_select_db($database_dl, $dl);
$query_divisionlist = "SELECT *
FROM `__Division`
WHERE `__Division`.id_langue = ".$LANG."
AND `__Division`.visible = '1'";
$divisionlist = mysql_query($query_divisionlist, $dl) or die(mysql_error());
$row_divisionlist = mysql_fetch_assoc($divisionlist);
$totalRows_divisionlist = mysql_num_rows($divisionlist);
do { echo '<p>'.$row_divisionlist['titre'].'</p>';
mysql_select_db($database_dl, $dl);
$query_categorielist = "SELECT *
FROM `__Produits_Cat`
WHERE `__Produits_Cat`.id_Division = ".$row_divisionlist['id']."
AND `__Produits_Cat`.id_langue = ".$LANG."
AND `__Produits_Cat`.visible = '1'";
$categorielist = mysql_query($query_categorielist, $dl) or die(mysql_error());
$row_categorielist = mysql_fetch_assoc($categorielist);
$totalRows_categorielist = mysql_num_rows($categorielist);
do { echo '<p>'.$row_categorielist['titre'].'</p>';
mysql_select_db($database_dl, $dl);
$query_scategorie = "SELECT *
FROM `__Produits_Sous_Cat`
WHERE `__Produits_Sous_Cat`.id_Produit_Cat = ".$row_categorielist['id']."
AND `__Produits_Sous_Cat`.id_langue = ".$LANG."
AND `__Produits_Sous_Cat`.visible = '1'";
$scategorie = mysql_query($query_scategorie, $dl) or die(mysql_error());
$row_scategorie = mysql_fetch_assoc($scategorie);
$totalRows_scategorie = mysql_num_rows($scategorie);
do { echo '<p>'.$row_scategorie['titre'].'</p>';
mysql_select_db($database_dl, $dl);
$query_sscategorie = "SELECT *
FROM `__Produits_Sous_sousCat`
WHERE `__Produits_Sous_sousCat`.id_Produit_Sous_Cat = ".$row_scategorie['id']."
AND `__Produits_Sous_sousCat`.id_langue = ".$LANG."
AND `__Produits_Sous_sousCat`.visible = '1'";
$sscategorie = mysql_query($query_sscategorie, $dl) or die(mysql_error());
$row_sscategorie = mysql_fetch_assoc($sscategorie);
$totalRows_sscategorie = mysql_num_rows($sscategorie);
do { echo '<p>'.$row_sscategorie['titre'].'</p>';
} while ($row_divisionlist = mysql_fetch_assoc($divisionlist));
} while ($row_categorielist = mysql_fetch_assoc($categorielist));
} while ($row_scategorie = mysql_fetch_assoc($scategorie));
} while ($row_sscategorie = mysql_fetch_assoc($sscategorie));
Merci beaucoup pour votre aide.
Code malpropre comme un devoir est mauvais;) Il en va de même pour les projets d'apprentissage.Ce n'est tout simplement pas correct;) :) –
Merci beaucoup, effectivement c'est pour apprendre que je travaille avec ça. Cela fonctionne parfaitement, je vais lire votre code et le comparer au mien pour voir quel est le problème! –
l'un des problèmes que vous avez eu était des boucles inversées. Si votre première boucle est une boucle de division, elle a le plus grand nombre et vous l'avez le plus à l'intérieur. Il est censé être le premier en dernier. boucle 1 Démarrer boucle 2 Début boucle 3 début ... boucle 3 Fin boucle 2 Fin boucle 1 Fin Vous avez eu cette façon boucle 1 Démarrer boucle 2 Début boucle 3 début . .. Boucle 1 Fin Boucle 2 Fin Boucle 3 Fin – Alex