Jump to content

Besoin d'aide sur BDD (MYSQL & PHP) Pour un Débutant :)


Fluorite

Recommended Posts

Bonsoir à tous

j'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éstashop

j'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'avance
Yannick

Link to comment
Share on other sites

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

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

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

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 :) Julien

et bonne soirée
yannick

7934_xesP7NdV3thr0cbjRVgy_t

Link to comment
Share on other sites

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

Salut à tous
Julien 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'erreur
function 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

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

RE
Merci
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

7963_aU0mbEDgei5TmZyrzV7x_t

Link to comment
Share on other sites

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

  • 3 years later...

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...