Organiser le resultat d'une requête SQL dans différents tableaux PHP (arborescence)
Bonjour,
Je suis désolé mais je n'ai pas réussi à trouver un nom explicite. Je vous explique mon problème très particulier.
Actuellement je travaille sur un site et je pars d'un produit qui appartient lui même à plusieurs famille. Par exemple, telle cartouche peut aller sur telle ou telle imprimante. Bref, j'ai donc à gérer des promos. Je récupère donc l'ID de 6 produits. Ensuite, pour chaque produit je récupère dans la base de données les ID de leur famille sous la forme |xxx|xxxx||xxx bref j'arrive donc a créer un tableau qui va lister chacun des IDs famille.
Ensuite et seulement ensuite, à partir de chaque ID famille, je dois remonter toute une arborescence dans une table SQL (je pars par exemple de l'ID 6660 dont l'ID parent sera 3000 et ce jusqu'à temps d'arriver à l'ID parent 0). Tout ça pour pouvoir afficher, cartouche encre brother DCP 130C (par exemple).
Bref actuellement, j'arrive à remonter cette arborescence pour un ID famille mais pas pour plusieurs, le tableau s'ecrase à chaque fois.
Voici le code vous comprendrez mieux:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
//Permet de parcourir l'arborescence pour un produit
class arborescence{
public $tab = array();
function listeSousCateg($eId) {
$vSqlSousCateg = "SELECT ID, IDParent, libelle
FROM fam_prod
WHERE ID = '".$eId."'";
$vRstSousCateg = mysql_query($vSqlSousCateg) or die("Erreur sql :".mysql_error());
while($vSousCateg = mysql_fetch_array($vRstSousCateg))
{
$this->tab[$vSousCateg["ID"]] = array("id" => $vSousCateg["IDParent"], "libelle" => $vSousCateg["libelle"]);
if($vSousCateg["IDParent"] != 0 )
{
$this->listeSousCateg($vSousCateg["IDParent"]);
}
}
}
}
//Récupération famille ID1
if($I1 != 0)
{
$famille_1 = Retourne_Famille($I1);
$resultat_1 = Decoupe_Chaine($famille_1);
echo "<pre>";
print_r($resultat_1);
echo "</pre>";
//A partir de l'ID de famille, on va reconstituer les modèles compatibles
$arbo = new arborescence;
//ID1
for ($cpt=0;$cpt<sizeof($resultat_1);$cpt++)
{
$arbo->tab = array();
$arbo->listeSousCateg($resultat_1[$cpt]);
}
}else{
} |
Bref avec ce code, je remonte l'arborescence d'un modèle alors qu'au final, je devrais le faire pour beaucoup plus. En gros, le tableau $arbo->tab s'ecrase à chaque fois, je desespère je n'ai plus d'inspiration.
J'espère que vous comprendrez.
Merci d'avance :)