Accueil > Forum > > > > Catégorie illimité , sous-catégorie^n etc...
Catégorie illimité , sous-catégorie^n etc...
jeudi 2 novembre 2006 à 13:12:05 |
Catégorie illimité , sous-catégorie^n etc...

tibine974
|
Bonjour à tous !! Voilà mon probléme je dois construire une application qui doit permettre d'ajouter des catégories , sous-catégorie, sous-sous-catégorie ( un nombre illimité avec des profondeurs aussi illimités ) . ex : - Cat A
- Sous-Cat A_0
- Sous-Cat A_1
- Sous-sous Cat A_1_0
- Sous-sous-sous Cat A_1_0_0
- Sous-sous-sous Cat A_1_0_0
- etc...
- Cat B
- Cat C
Mais voilà je bloque sur la maniére de créer ma base et mes requêtes. J'ai pensé que vu que je ne savais pas combien de catégorie , ss-cat etc... je comptais mettre tous dans une même table : voir ci dessous : CREATETABLE`table`(`cat_id`INT(5)NOTNULLAUTO_INCREMENTPRIMARYKEY, `cat_libelle`VARCHAR(255)NOTNULL, `cat_parent`INT(5)NOTNULL )ENGINE=innodb;
Cat_parent : pour l'élément qui correspond à une Catégorie, le cat_parent est égale à 0 . Pour les sous-cat , il correspondra à l'id de l'élément dont il est le parent. Voici ma question : est-ce que ce systéme vous semble correct , sinon voyez-vous une autre solution ??
Merci d'avance pour les réponses positives ou négatives, car j'avoue bloquer . 
|
|
jeudi 2 novembre 2006 à 13:33:57 |
Re : Catégorie illimité , sous-catégorie^n etc...

JulSoft
|
Je pense que c'est la seule façon que tu puisse utiliser. ça marche pas trop mal (quand même pas mal de requetes pour tout récupérer et trier).
Après ce que tu peux faire pour éviter les requetes multiples est de créer une classe catégorie qui comprenne un champ "sous_categories" qui lui contien un nouvel élément catégorie. ça peut peut être t'éviter de faire 300 requetes mysql, mais je ne suis sur de rien (pas testé).
|
|
jeudi 2 novembre 2006 à 18:04:53 |
Re : Catégorie illimité , sous-catégorie^n etc...

malalam
|
Hello,
je pense aussi que c'est la seule solution. Mais j'éviterais les requêtes multiples pour trouver toutes les occurences liées à une catégorie. Je récupèrerais tout dans un tableau multidimensionnel, et ferais le tri en PHP (l'algo est simple, en php).
|
|
jeudi 2 novembre 2006 à 20:30:20 |
Re : Catégorie illimité , sous-catégorie^n etc...

tibine974
|
Re ! Tout d'abord merci pour les réponses ! Comme tu l'as dit malalam moi aussi j'ai pensé récupérer dans un tableau multidimensionnel. Mais voilà , un autre probléme survient comment trier ce dit tableau , voici ce que cela donne aprés la requête : $stockage = array ( array (1, "cat a", 0 ) , array (2 , "cat b", 0 ) , array (3 , "cat c", 0 ) , array (4 , "sous-cat a_0", 1 ) , array (5 , "sous-cat a_1", 1 ) , array (6 , "sous-sous cat a_1_0", 5 ) , array (7 , "sous-sous-sous cat a_1_0_0", 6 ) );
Je sais ensuite qu'il faut passer en boucle le tableau, mais à l'intérieur de la boucle je ne vois pas comment faire pour que le array1 recherche dans les autres array la valeur souhaité . foreach ( $stockage as $tab => items ):
endforeach;
Si vous avez un début de réponse ou me proposer une démarche je suis preneur . merci d'avance 
Meuh ! Fais la vache
|
|
vendredi 3 novembre 2006 à 00:29:28 |
Re : Catégorie illimité , sous-catégorie^n etc...

JulSoft
|
je reste convaincu que c'est possible (probablement plus simple) avec des classes... donne moi un peut de temps que je te bricole quelque chose...
|
|
vendredi 3 novembre 2006 à 06:13:39 |
Re : Catégorie illimité , sous-catégorie^n etc...

tibine974
|
Merci à toi de regarder mon probléme ! moi aussi de mon côté je continue de chercher.On se tient au courant :
Meuh ! Fais la vache
|
|
lundi 6 novembre 2006 à 00:59:09 |
Re : Catégorie illimité , sous-catégorie^n etc...

JulSoft
|
Réponse acceptée !
Voilà... c'est un peu spaghetti, pas des masses commenté, mais ça a l'air de marcher
<?php // objet "cat" class cat{ // variables var $id; var $nom; var $enfants; // constructeur function cat($id,$nom){ $this->id = $id; $this->nom = $nom; $this->enfants = array(); } } // fonction de récursivité function setchild($parent,$id_parent,$id,$nom){ if($parent->id==$id_parent){ // on set $parent->enfants[count($parent->enfants)] = new cat($id,$nom); return 1; }else{ for($j=0;$j<count($parent->enfants);$j++){ // on parcours les enfants et on applique la récurence if(setchild($parent->enfants[$j],$id_parent,$id,$nom)==1){ // c'est bon return 1; } } return 0; } } // fonction d'affichage récursif function display($parent){ echo $parent->nom ."<br />"; for($i=0;$i<count($parent->enfants);$i++){ display($parent->enfants[$i]); } } // ouverture mysql $db_link = mysql_connect("localhost","root",""); mysql_select_db("test"); $requete = mysql_query("select * from table_cat",$db_link)or die(mysql_error()); // conteneur des cats... $objs = array(); // on parcours les résultats for($i=0;$i<mysql_num_rows($requete);$i++){ $nom = mysql_result($requete,$i,'nom'); $id = mysql_result($requete,$i,'id'); $parent = mysql_result($requete,$i,'parent'); // on enregistre le nouvel objet... if($parent==0){ $objs[count($objs)] = new cat($id,$nom); }else{ // par récursivité on tente de trouver le parent for($j=0;$j<count($objs);$j++){ // on parcours les enfants et on applique la récurence if(setchild($objs[$j],$parent,$id,$nom)==1){ // c'est bon break; } } } } // on devrait tout avoir... // on affiche for($i=0;$i<count($objs);$i++){ display($objs[$i]); } // fermeture mysql mysql_close($db_link); ?>
pour ce qui est de la table mysql:
"id";"nom";"parent" "1";"cat1";"0" "2";"cat2";"0" "3";"cat3";"0" "4";"subcat2.1";"2" "5";"subcat1.1";"1" "6";"subcat2.1.1";"4" "7";"subcat1.2";"1" "8";"subcat1.1.1";"5"
Voilà, n'hésite pas à demander si t'as rien compris, il est tard quand je poste...
|
|
lundi 6 novembre 2006 à 01:01:35 |
Re : Catégorie illimité , sous-catégorie^n etc...

JulSoft
|
Pour ce qui est du tri, tu tries les parents puis par récurence les enfants... tout ça dans la joie et la bonne humeur
|
|
mardi 7 novembre 2006 à 07:12:44 |
Re : Catégorie illimité , sous-catégorie^n etc...

tibine974
|
Re !! Je viens de regarder et tester ton code , cela à l'air de bien marcher . Merci encore d'avoir regardé mon probléme.  ++ Meuh ! Fais la vache
|
|
lundi 20 novembre 2006 à 13:59:16 |
Re : Catégorie illimité , sous-catégorie^n etc...

prophete56
|
Salut
Je travaille sur un problème similaire mais je suis bloqué....
Je voudrais - pouvoir deplacer par categories ou sous catégories - pouvoir ajouter un controle sur la suppression des catégories (si il existe des sous categories )
etc...
|
|
Cette discussion est classée dans : cat, parent, catégorie, illimité, 0sous
Répondre à ce message
Sujets en rapport avec ce message
Transformer Menu Fixe en dynamique [ par Programmeur1987 ]
Bonjour, depuis plusieur jour je me casse la tête à tenter de rentre mon menu dynamique c'est pour un espece de magasin en ligne et il récupère les it
Présentation des résultats d'une requete 3 par ligne [ par yvain91 ]
Bonjour,Avec une requête, je récupère le nom des catégories de mon site. J'arrive à afficher chaque nom de catégorie dans une ligne de tableau. Je sou
Classer contacts par catégories [ par matt38100 ]
Bonjour à tous et toutes. Je suis en train de dévellopper un petit annuaire de contacts en PHP/MySQL et j'aurais besoin d'un petit coup de pouce pour
affichage de la hiérarchie d'une sous-catégorie [ par oceanrider ]
Bonjour,Je cherche ici une réponse que je n'ai pas encore pu trouver ailleurs, alors qu'il s'agit surement d'un problème assez commun.J'ai réalisé une
PB CSS [ par yoarf ]
Bonjour,Voici le style css de ma liste :#menu LI{ list-style-type: none; padding-top:5px; padding-bottom:0px; padding-left: 5px;}page:&nbs
Vérifier qu'une valeur existe dans une table [ par Rimb0 ]
Bonjour à tous, je voudrais vérifier qu'une valeur n'existe pas déjà dans une table.Voici ce que j'ai écrit :Adresse de ma page : index.php?cat=cool$c
Update d'une liste [ par malice ]
Bonjour,Je suis en train de construire mes premiers scripts et j'ai un petit soucis avec l'update d'une liste, je m'explique.Dans une table, j'ai des
extraction de donnée [ par clovismaj ]
Bonjour,Comment dire j'ai 2 langues qui selon le choix est en session sur une page appellé produit, dans cette page j'ai plusieurs category dont certa
str_replace [ par yoarf ]
Bonjour,Je voudrais dans une chaine remplacer les cotes (') par des espaces:Cela ne fonctionne pas : $cat = str_replace('"',' ',$cat);
Ajout des identifiants [ par ldevun ]
Bonjour,J'ai une BDD avec des catégories, des sous catégories, des produits. Les catégorie ont un id, les sous catégories ont un id aussi et les produ
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
XML ET PHPXML ET PHP par karouani
Cliquez pour lire la suite par karouani
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|