IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

je cherche de l'aide pour un menu avec des categories et des sous-categories


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 3
    Par défaut je cherche de l'aide pour un menu avec des categories et des sous-categories
    Bonjour Mes chers dames et Messieurs.

    Ensuite je suis entrain de construire un site à l'aide du système de templates "PHPlib", j'ai appris le PHP, le XHTML et le CSS sur ce site alors j'espère avoir encore de l'aide sur le forum du site.

    mon problème c'est que j'ai une table dans la base des donnée qui s'appelle tbl_category où se trouve mes articles

    j'ai une fonction en php qui demande toutes les information de la table tbl_category et qui les mettre dans un tableau comme ceci :

    Array
    (
    [0] => Array
    (
    [cat_id] => 12
    [cat_parent_id] => 0
    [cat_name] => Cars
    [cat_image] => aaab7f93b95.jpg
    [cat_description] => Expensive
    )

    [1] => Array
    (
    [cat_id] => 13
    [cat_parent_id] => 0
    [cat_name] => Manga
    [cat_image] => 785bf70342c.jpg
    [cat_description] => It's all about manga
    )

    [2] => Array
    (
    [cat_id] => 14
    [cat_parent_id] => 12
    [cat_name] => Volvo
    [cat_image] =>
    [cat_description] => Swedish luxury car
    )

    [3] => Array
    (
    [cat_id] => 15
    [cat_parent_id] => 12
    [cat_name] => Mercedes-Benz
    [cat_image] => 86c95dac52.jpg
    [cat_description] => Expensive but real good
    )

    [4] => Array
    (
    [cat_id] => 16
    [cat_parent_id] => 13
    [cat_name] => Naruto
    [cat_image] =>
    [cat_description] => This is the story of Naruto and all his gang
    )

    [5] => Array
    (
    [cat_id] => 17
    [cat_parent_id] => 13
    [cat_name] => Hunter X Hunter
    [cat_image] =>
    [cat_description] => Story about hunter and combat
    )

    )


    mon problème c'est que j'arrive pas a formater ce tableau pour avoir un menu du genre:

    pour une page du type : (par exemple index.php?c=12 ou index.php?c=14)
    Cars
    - Volvo
    - Mercedes-Benz
    Manga


    ou
    pour une page du type : (par exemple index.php?c=13 ou index.php?c=17)
    Cars
    Manga
    - Naruto
    - Hunter X Hunter


    et pour une page où on demande une catégorie qui n'existe pas on affiche que les catégories parents :
    Cars
    Manga
    ou bien simplement
    Cars
    - Volvo
    - Mercedes-Benz
    Manga
    - Naruto
    - Hunter X Hunter


    mon bute c'est de trier le tableau pour avoir pour chaque catégorie vient juste derrière les sous catégorie de cette catégorie dans un ordre bien déterminé sur le tableau.

    Selon la catégorie où je suis sur le site, après je peux ajouté quelque trucs avec javascript et css

    Merci d'avance pour votre aide et soutien.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Par défaut
    Bonsoir,

    En priant le ciel, quelque chose de ce style devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    function	my_format($a_data)
    {
      $i_i1;
      $i_i2;
      $i_cat_id;
     
      $i_i1 = -1;
      while ($a_data[++$i_i1] && ($i_i2 = -1))
      {
        if (!$a_data[$i_i1]['cat_parent_id'] && 
    	(($i_cat_id = $a_data[$i_i1]['cat_id']) || 1))
          echo $a_data[$i_i1].'<br />';
        else
          $i_cat_id = 0;
        while ($a_data[++$i_i2])
          if ($i_cat_id && $a_data[$i_i2]['cat_parent_id'] == $i_cat_id)
            echo '- '.$a_data[$i_i2]['cat_name'].'<br />';
      }
    }
    Si jamais ça ne fonctionne pas, excuse moi, et fait le moi savoir, je me corrigerai au plus vite.

    Bonne soirée.

    [EDIT] : Je sais pas faire de br :'(
    [EDIT2] : J'ai pas vraiment dit ce que faisait mon code . Si tu lui passe un array à 2D, comme celui que tu nous a représenté, il te donnera ton troisième souhait. Pour l'adapter au deux premiers (qui n'en sont qu'un), je pense que tu devrais y arriver sans trop de soucis ($_GET['c'] devrait avoir un p'tit rôle a jouer)

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 3
    Par défaut
    Merci infiniment SpiritOfDoc pour votre soutien et votre aide ton code ne marche pas, mais bon merci pour votre coup de main, j'ai trouvé la solution on s'appuyant sur votre réponse et votre code, oui il me fallait un tableau en 3 dimension pour un menu d'un seul sous-niveau je cherche encore un code pour deux ou trois autre sous-niveaux. merci beaucoup.


    bon le code le voilà:

    pour une table comme la suite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $o_data =	array(
    				array('cat_id'=>12,'cat_parent_id'=>0,'cat_name'=>'Cars','cat_image'=>'1000.jpg','cat_description'=>'aucune ;)'),
    				array('cat_id'=>13,'cat_parent_id'=>0,'cat_name'=>'Manga','cat_image'=>'2000.jpg','cat_description'=>'aucune ;)'),
    				array('cat_id'=>14,'cat_parent_id'=>12,'cat_name'=>'Volvo','cat_image'=>'1001.jpg','cat_description'=>'aucune ;)'),
    				array('cat_id'=>15,'cat_parent_id'=>12,'cat_name'=>'Mercedes','cat_image'=>'1002.jpg','cat_description'=>'aucune ;)'),
    				array('cat_id'=>16,'cat_parent_id'=>12,'cat_name'=>'Fiat','cat_image'=>'1003.jpg','cat_description'=>'aucune ;)'),
    				array('cat_id'=>17,'cat_parent_id'=>13,'cat_name'=>'Naruto','cat_image'=>'2001.jpg','cat_description'=>'aucune ;)'),
    				array('cat_id'=>18,'cat_parent_id'=>13,'cat_name'=>'Tom&Jerry','cat_image'=>'2002.jpg','cat_description'=>'aucune ;)'),
    				array('cat_id'=>19,'cat_parent_id'=>13,'cat_name'=>'Jimmy Netron','cat_image'=>'2003.jpg','cat_description'=>'aucune ;)'),
    			);
    la fonction qui le format est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    function my_format($a_data){
     
    		$n=count($a_data);
    		$format = array();	
    		for($i=0;$i<$n;$i++){
    			if($a_data[$i]['cat_parent_id']==0){
     
    				$format[][]= array(
    					'cat_id'			=>$a_data[$i]['cat_id'],
    					'cat_parent_id'		=>$a_data[$i]['cat_parent_id'],
    					'cat_name'			=>$a_data[$i]['cat_name'],
    					'cat_image'			=>$a_data[$i]['cat_image'],
    					'cat_description'	=>$a_data[$i]['cat_description']
    				);
    			}
     
    			$m=count($format);
    			for($l=0;$l<$m;$l++){
    				if($a_data[$i]['cat_parent_id']!=0 && $a_data[$i]['cat_parent_id']==$format[$l][0]['cat_id']){
    					$format[$l][]=array(
    						'cat_id'			=>$a_data[$i]['cat_id'],
    						'cat_parent_id'		=>$a_data[$i]['cat_parent_id'],
    						'cat_name'			=>$a_data[$i]['cat_name'],
    						'cat_image'			=>$a_data[$i]['cat_image'],
    						'cat_description'	=>$a_data[$i]['cat_description']
    					);
    				}
    			}
     
    		}
     
    	return $format;
    	}
    à tres bientôt pour un autre coup de main

Discussions similaires

  1. Cherche de l'aide pour éventuellement créer un GUI
    Par nfs65 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/12/2006, 18h48
  2. Novice cherche de l'aide pour diaporama
    Par john38 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 18/07/2006, 18h16
  3. Demande d'aide pour un menu javascript
    Par Lost-H dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/06/2006, 16h17
  4. cherche de l'aide pour une solution
    Par ouam81 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 31/05/2005, 08h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo