cs_gilou33
Messages postés15Date d'inscriptionvendredi 7 novembre 2003StatutMembreDernière intervention29 février 2008
-
28 févr. 2008 à 19:13
joseph2033
Messages postés20Date d'inscriptionjeudi 12 mai 2005StatutMembreDernière intervention27 décembre 2012
-
4 mai 2010 à 16:10
Bonjour,
je suis un peu coincé sur la réalisation d'une boutique en ligne, pour un élément probablement tout bête, l'affichage de catégories d'articles. En effet, je souhaiterai lister les catégories et sous catégories mais celles-ci peuvent être illimitées, je n'arrive pas à trouver la méthoe à utiliser pour gérer cette boucle illimitée.
Pour information, la table contenant les catégories est structurée comme suit :
id_categorie (id unique)
nom_categorie (ben le nom de la catégorie)
id_parent (l'id de la catégorie parent sinon 0 si c'est une principale)
ordre (l'ordre de la catégorie)
cs_gilou33
Messages postés15Date d'inscriptionvendredi 7 novembre 2003StatutMembreDernière intervention29 février 2008 28 févr. 2008 à 19:34
En fait actuellement j'ai ce code, mais qui ne liste que 1 sous catégorie car je réflechi comment lister des sous catégories illimitées justement, mais ce code est fonctionnel :
$req mysql_query("SELECT * FROM categories WHERE id_parent 0 ORDER BY ordre");
while($r = mysql_fetch_object($req)){
echo '<li>'.stripslashes($r->nom_categorie).'</li>';
$req2 mysql_query("SELECT * FROM categories WHERE id_parent ". (int) $r->id_categorie ." ORDER BY ordre");
cs_gilou33
Messages postés15Date d'inscriptionvendredi 7 novembre 2003StatutMembreDernière intervention29 février 2008 28 févr. 2008 à 19:54
Merci Evangun pour ce conseil, mais comme tu peux le constater, ce n'est pas le problème du listage des catégories qui me pose problème, mais celui des sous catégories avec indetation si tu préfère, voici un exemple
J'espère que c'est assez clair, sachant que les sous catégories peuvent être illimitées. J'ai constaté que les sites osCommerce permettent cette gestion de sous catégories illimitées comme cela.
cs_gilou33
Messages postés15Date d'inscriptionvendredi 7 novembre 2003StatutMembreDernière intervention29 février 2008 28 févr. 2008 à 21:38
Je te remercie mais cela ne répond pas à ma demande, de plus, tout est centré sur des requêtes SQL et il n'est pas présenté de méthodes liées au listage de Catégories incluant des sous catégories illimitées comme je le souhaite. Ma base de données est en MySQL 4.3 et PHP 5
cs_gilou33
Messages postés15Date d'inscriptionvendredi 7 novembre 2003StatutMembreDernière intervention29 février 2008 28 févr. 2008 à 21:52
Petite précision cependant, la structure de ma table est exactement celle présentée par le site que tu m'a fourni, à savoir :
- L'id de la catégorie auto incrémenté
- Son nom
- L'id parent si c'est une sous catégorie
- Saud que j'ai un ordre en plus mais c juste pour trier lors de la requête
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 28 févr. 2008 à 22:30
sur mon lien, l'auteur presente deux facons de faire une arboressence.... tu implementes la premiere, alors que c'est la seconde qui est interessante en fait...
cs_gilou33
Messages postés15Date d'inscriptionvendredi 7 novembre 2003StatutMembreDernière intervention29 février 2008 29 févr. 2008 à 01:21
Très bien je t'en remercie, mais comme je te disais, cela ne correspond pas à ma demande, je n'ai aucun exemple de script si ce n'est du SQL mais tout fonctionne avec des vues et des procédures, que je ne peux même pas exploiter avec MySQL 4. Ce que je souhaiterais c'est un exemple avec une boucle PHP, mais je ne désespère pas j'essaye actuellement avec la gestion des tableaux (array), je vais insérer toutes mes catégories dans un array et voir ce qui est gérable avec les tris etc...
Merci encore et si quelqu'un à une chtite idée elle sera la bienvenue
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 29 févr. 2008 à 02:05
un truc genre ca :
function afficher($idp){
$out='';$req mysql_query('SELECT * FROM categories WHERE id_parent '.$idp.' ORDER BY ordre') or die(mysql_error());
while($r = mysql_fetch_object($req)){
$out.='<li>'.stripslashes($r->nom_categorie).afficher($idp).'</li>';
}
if ($out!='')return $out.'';
return '';
}
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 29 févr. 2008 à 02:13
mais tu remarqueras qu'avec l'autre methode, tu fais ca avec une seule requete...
/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/