Tableau a 3 dimensions

Résolu
ldevun Messages postés 58 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 7 avril 2009 - 21 août 2006 à 19:29
cs_eXon Messages postés 166 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 8 avril 2007 - 23 août 2006 à 02:26
Bonjour, j'essaye de créé un tableau a 3 dimensions, mais celui-ci ne fonctionne pas bien, voici mon code :

<? include ("host.php");
$requete = "SELECT p.id_prod, nom_prod, image_prod, prix_prod, notice_prod, doc_prod, nom_ssfam,nom_fam  FROM produit p, sousfamille s,lien l, famille f WHERE l.id_prod=p.id_prod AND l.id_ssfam=s.id_ssfam AND f.id_fam=s.id_fam  ORDER BY nom_ssfam";
      $result = mysql_query($requete) or die ('Erreur : '.mysql_error() );
      while($ln = mysql_fetch_assoc($result)){
       
       
      
       $tableau["grandtitre"] = $ln['nom_fam'];
       $tableau["famille"]["titre"] = $ln['nom_ssfam'];       
       $tableau["famille"]["produits"]["id"] = $ln['id_prod']; 
       $tableau["famille"]["produits"]["designation"] = $ln['nom_prod'];       
       $tableau["famille"]["produits"]["prix"] = $ln['prix_prod'];
       $tableau["famille"]["produits"]["image"] = $ln['image_prod'];
       $tableau["famille"]["produits"]["pdf1"] = $ln['notice_prod'];
       $tableau["famille"]["produits"]["pdf2"] = $ln['doc_prod'];
       
       }


      
          echo $tableau["grandtitre"];
              
      foreach ($tableau as $tab) {
      ?>  ----

          <?=$tab["grandtitre"]; ?>,
 

      <?foreach ($tableau["famille"] as $cat) {
      
      ?>
      

    ----

          &nbsp;&nbsp;<?=$cat['titre']?>,
 

   


         <?
      foreach ($tableau[\"famille\"][\"produits\"] as $produit) {
      ?>
      
      ----

      <?=$produit['id']?>,
      <?=$produit['designation']?>,
      <?=$produit['prix']?>,
            <?=$produit['id']?>,
      <?=$produit['pdf1']?>,
      <?=$produit['pdf2']?>,
      
      <?
      }
      
      echo '

';
      }
      }
A voir également:

3 réponses

cs_eXon Messages postés 166 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 8 avril 2007 1
23 août 2006 à 02:26
La facon la plus aproprié serait de mettre le numéro qui incrémente au début de la variable
$i = 0;
while($ln = mysql_fetch_assoc($result)){
       $tableau[$i]["grandtitre"] = $ln['nom_fam'];
       $tableau[$i]["famille"]["titre"] = $ln['nom_ssfam'];       
       $tableau[$i]["famille"]["produits"]["id"] = $ln['id_prod']; 
       $tableau[$i]["famille"]["produits"]["designation"] = $ln['nom_prod'];       
       $tableau[$i]["famille"]["produits"]["prix"] = $ln['prix_prod'];
       $tableau[$i]["famille"]["produits"]["image"] = $ln['image_prod'];
       $tableau[$i]["famille"]["produits"]["pdf1"] = $ln['notice_prod'];
       $tableau[$i]["famille"]["produits"]["pdf2"] = $ln['doc_prod'];
       $i++;
}

L'on est obligé d'utiliser une variable d'incrémention parce qu'il faut récupérer le numéro du premier pour le garder pour chacun. Par la suite, tu peux utiliser une fonction du genre pour tous les afficher:

foreach($tableau as $value)
{
       echo $value["grandtitre"];
       echo $value["famille"]["titre"];
       [...]
}

----------------
eXon
3
Rejoignez-nous