Fluorite Posted May 22, 2009 Share Posted May 22, 2009 Bonsoir à tousj'ai besoin d'un coup de pouce sur MYSQL,je m'explique Je voudrais pouvoir aller chercher tous les liens des Categories et Sous catégorie ,comme le fait le menu de Préstashopj'ai beau faire quel que tests du style Mysql_select_db ("category") ; $query = "select * from category where" blablabla je connais rien en MYSQL je pense que pour une personne qui en a l'habitude ça devrait être simple.Donc, je voudrais juste que le code php et mysql aille chercher toutes les catégories et sous catégories en lien et TEXT (URL).Voilà si vous avez le temps de prendre quelque minutes pour moi ,je vous en serais reconnaissant.merci beaucoup d'avanceYannick Link to comment Share on other sites More sharing options...
Julien Breux Posted May 22, 2009 Share Posted May 22, 2009 Voici une portion de code utile : <?php include(dirname(__FILE__).'/config/config.inc.php'); require_once(dirname(__FILE__).'/init.php'); $categories = Category::getHomeCategories(intval($cookie->id_lang), true); foreach($categories as $categorie) echo ''.$categorie['name'].' '; ?> /!\ Ce code ne liste pas les sous catégories. Link to comment Share on other sites More sharing options...
Julien Breux Posted May 22, 2009 Share Posted May 22, 2009 Voici une seconde portion de code utile. ><?php include(dirname(__FILE__).'/config/config.inc.php'); require_once(dirname(__FILE__).'/init.php'); $categTree = Category::getRootCategory()->recurseLiteCategTree(0); function constructTreeNode($node){ $ret = ''."\n"; $ret .= ''.$node['name'].''."\n"; if(!empty($node['children'])) { $ret .= '</pre> <ul>'."\n"; foreach ($node['children'] AS $child) $ret .= constructTreeNode($child); $ret .= '</ul>'."\n";<br> }<br> $ret .= ''."\n";<br> return $ret;<br>}<br><br>$ulTree = '<div>' . $categTree['name'] . '</div>'."\n";<br>$ulTree .= '<ul>'."\n"; foreach ($categTree['children'] AS $child) $ulTree .= constructTreeNode($child); $ulTree .= '</ul>'."\n";<br><br>echo $ulTree;<br><br /!\ Ce code liste les sous catégories Link to comment Share on other sites More sharing options...
Fluorite Posted May 22, 2009 Author Share Posted May 22, 2009 Bonjour à tous Julien Breux Merci superbe,génial, j'en perds mes mots vraiment ça me dépanne pour ce que je veux faire.Par contre je suis embêter avec le second qui affiche les catégories, et sous catégorie ,mais il me lés affiches en liste surement du à la classe (tree) $ulTree) ect Donc, jje voudrais qu'il me les affiches comme le premier code<?php include(dirname(__FILE__).'/config/config.inc.php'); require_once(dirname(__FILE__).'/init.php'); $categories = Category::getHomeCategories(intval($cookie->id_lang), true); foreach($categories as $categorie) echo ''.$categorie['name'].''; ?> \\ --> (Moins la balise de fin pour ne pas avoir de retour de ligne Mais avec les Sous catégorie en + de façon a avoir les liens a la suite de cette façon Articles d'occasions | Livres d'occasions | BD Occasions | Comics Occasions | Informatique Occasions | Jeunesses Occasion Voilà super dans tous les cas et je tiens vraiment a remercier ceux qui prennent toujours le temps de répondre à toutes nos questions./me offre un Coca à Julien Breux @++ Yannick Link to comment Share on other sites More sharing options...
Julien Breux Posted May 22, 2009 Share Posted May 22, 2009 C'est avec grand plaisir, mais appelle moi Julien **plus convivial**Que veux-tu comme formatage ? (HTML ?) Link to comment Share on other sites More sharing options...
Fluorite Posted May 22, 2009 Author Share Posted May 22, 2009 Re-bonsoir à tous Que veux-tu comme formatage ? (HTML ?) Enfaite voila comment je voudrais que le code soit formaté dans un tableau et s'aligne dans la longueur horizontale de la page comme sur l'image à part que là y'a pas de BDD juste du text d'ou ma demande Là c'est moi qui ai ajouté les URL à la main.enfaite ce code conviendrais mais avec en plus les sous Categories /!\ Ce code ne liste pas les sous catégories. <?php include(dirname(__FILE__).'/config/config.inc.php'); require_once(dirname(__FILE__).'/init.php'); $categories = Category::getHomeCategories(intval($cookie->id_lang), true); foreach($categories as $categorie) echo ''.$categorie['name'].' '; ?> l'était bon mon Coca? merci de ton aide précieuse Julienet bonne soiréeyannick Link to comment Share on other sites More sharing options...
Julien Breux Posted May 23, 2009 Share Posted May 23, 2009 Et voilà mon p'tit monsieur.Merci pour le coca <?php include(dirname(__FILE__).'/config/config.inc.php'); require_once(dirname(__FILE__).'/init.php'); $separator = '|'; $categTree = Category::getRootCategory()->recurseLiteCategTree(0); function constructTreeNode($node, $separator) { $return = ' '.$node['name'].''."\n"; if(!empty($node['children'])) foreach ($node['children'] AS $child) $return .= constructTreeNode($child); $return .= $separator; return $return; } $tree = ''; foreach ($categTree['children'] AS $child) $tree .= constructTreeNode($child, $separator); echo substr($tree, 0, strlen($tree) - strlen($separator)); ?> Link to comment Share on other sites More sharing options...
Fluorite Posted May 24, 2009 Author Share Posted May 24, 2009 Salut à tousJulien Woah Superbe .(désolé de pas ne pas t'avoir répondu plus tôt )Je rencontre juste un problème, une erreur.Je te donne l'erreur. Warning: Missing argument 2 for constructTreeNode(), called in G:\wamp\www\bb_footer.php on line 14 and defined in G:\wamp\www\bb_footer.php on line 9 Le code <?php require_once(dirname(__FILE__).'/init.php'); $separator = '|'; $categTree = Category::getRootCategory()->recurseLiteCategTree(0); function constructTreeNode($node, $separator) { $return = ' '.$node['name'].''."\n"; if(!empty($node['children'])) foreach ($node['children'] AS $child) $return .= constructTreeNode($child); $return .= $separator; return $return; } $tree = ''; foreach ($categTree['children'] AS $child) $tree .= constructTreeNode($child, $separator); echo substr($tree, 0, strlen($tree) - strlen($separator)); ?> Ligne 9 ou apparemment il aurait l'erreurfunction constructTreeNode($node, $separator)j'ai bien essayé de me débrouiller!!! mais j'arrive à rien. Un truc qui se répète ou mal construit? ou déclaré avant une fonction?...Dans tous les cas si j'enlève le morceaux de code $return .= $separator; plus d'erreur qui s'affiche.Mais sans le séparateur "|" se qui n'ai pas grave... car je me débrouille avec le CSS après.Dans tous les cas si tu à le temps de m'expliquer le problème,je suis tout-ouieeeeeeeee Merci pour ton travaille Julien et d'avoir pris le temps de me coder cela.Bye @++Yannick/me offres des Coca à Tire-larigots Link to comment Share on other sites More sharing options...
Julien Breux Posted May 24, 2009 Share Posted May 24, 2009 Effectivement, je n'avais pas vu, essaies ceci : <?php require_once(dirname(__FILE__).'/init.php'); $separator = '|'; $categTree = Category::getRootCategory()->recurseLiteCategTree(0); function constructTreeNode($node, $separator) { $return = ' '.$node['name'].''."\n"; if(!empty($node['children'])) foreach ($node['children'] AS $child) $return .= constructTreeNode($child, $separator); $return .= $separator; return $return; } $tree = ''; foreach ($categTree['children'] AS $child) $tree .= constructTreeNode($child, $separator); echo substr($tree, 0, strlen($tree) - strlen($separator)); ?> Link to comment Share on other sites More sharing options...
Fluorite Posted May 24, 2009 Author Share Posted May 24, 2009 REMerci Mouarf il manquer la déclaration $return .= constructTreeNode($child, $separator); Donc, ça fonctionne plus d'erreur ,mais,mais, regarde comment il me, met le séparateur,il se répéte plusieurs fois | || ||| Voila,désoler de t'embêter avec sa,ne te prend pas la tête le code ça me convient ... j'ai le temps merci beaucoup@++Yannick Link to comment Share on other sites More sharing options...
Julien Breux Posted May 24, 2009 Share Posted May 24, 2009 Dans le doute (c'est pas très structurel), mais tant pis : <?php require_once(dirname(__FILE__).'/init.php'); $separator = '|'; $categTree = Category::getRootCategory()->recurseLiteCategTree(0); function constructTreeNode($node, $separator) { $return = ' '.$node['name'].''."\n"; if(!empty($node['children'])) foreach ($node['children'] AS $child) $return .= constructTreeNode($child, $separator); $return .= $separator; return $return; } $tree = ''; foreach ($categTree['children'] AS $child) $tree .= constructTreeNode($child, $separator); $tree = substr($tree, 0, strlen($tree) - strlen($separator)); $tree = str_replace('||', '|', $tree); echo $tree; ?> Link to comment Share on other sites More sharing options...
Fluorite Posted May 27, 2009 Author Share Posted May 27, 2009 Salut à tousJulien Super Merci pour ton travaille, et le temps consacréeJe reviendrai Aller Bye@++Yannick Link to comment Share on other sites More sharing options...
Ambigua Posted January 13, 2013 Share Posted January 13, 2013 Salut ! Désolé de déterrer ce vieux post, mais j'utilise une partie de ce code, dans un module du BO pour lister les catégories et ses sous cat. sous 1.5.2 Avec : $categTree = Category::getRootCategory()->recurseLiteCategTree(0); Mais, ca ne me donne que la liste des catégories accessible au groupe de client "defaut". J'ai des catégories accessibles seulement a d'autres groupes (Profesionnels, gros clients etc.. ) qui voient bien ces catégories quand ils sont connectés sur le FO. Comment faire pour que le code ci dessous liste l'intégralité des catégories et sous cat ? J'ai été voir dans la classe Category.php, j'ai un peu de mal a comprendre .. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now