cs_lowkey
Messages postés260Date d'inscriptionjeudi 31 mai 2007StatutMembreDernière intervention 5 novembre 2010
-
30 mai 2008 à 21:45
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
1 juin 2008 à 09:41
Salut à tous !!
Voici ma methode d'une classe que je suis en train de créer. Il y a un seul attribur : $liste, en private.
public function afficheCategorie($idParent 0, $niveau 0)
{
$cnx = new Connexion;
$cnx -> open();
$listeCategories = "SELECT * FROM categorie WHERE id_parent=".$idParent." ORDER BY ordre";
$lesCategories = mysql_query($listeCategories);
if( mysql_num_rows($lesCategories) == 0 )
{
return false;
}else
{
while( $l = mysql_fetch_object($lesCategories) )
{
for ($i=0;$i<($niveau*5);$i++)
{
$this -> liste .= "&nbsp;";
}
$this -> liste .= $l -> titre."
";
$niv = $niveau + 1;
$this -> afficheCategorie( $l -> id, $niv);
}
echo $this -> liste;
}
}
Cette methode est cencée me créer une 'arborescence'.
Ma table categorie a comme champs : id, id_parent, texte
Normalement, je voudrais avoir ça :
Déco
Vases
Bougeoirs
Tableaux
Art de la table
Plats
Mais malheureusement, j'ai ça:
Déco
Vases
Bougeoirs
Tableaux
Déco
Vases
Bougeoirs
Tableaux
Art de la table
Plats
Déco
Vases
Bougeoirs
Tableaux
Art de la table
Plats
C'est peu etre la fatigue, mais je n'arrive pas a trouver le probleme.
Si quelqu'un a une idée, ce serait vraiment simpa !!
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 1 juin 2008 à 09:41
Hello,
fais voir non pas la structure de ta table, mes les données qu'elle contient.
Sinon ton approche n'est pas bonne : tu te rends compte que tu ouvres 1 connexion db par récursion ? Ca fait bcp. Tu devrais au moins utiliser une variable statique pour ta connexion. Ou utiliser une classe qui fait du singleton, en l'occurrence (puisque c'est une classe).