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

PHP & Base de données Discussion :

afficher une sorte d'arborescence du type categorie->sous_categorie->sous_sous_categorie.


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Par défaut afficher une sorte d'arborescence du type categorie->sous_categorie->sous_sous_categorie.
    Bonjour,
    Voilà, j'ai une petite problèmatique et je n'arrive pas à la résoudre malgré mes recherches.
    Je dois afficher une sorte d'arborescence du type categorie->sous_categorie->sous_sous_categorie.
    Le tout est extrait d'une base de données.
    Le problème est que j'arrive à afficher toutes les catégories mais que je n'arrive pas à afficher
    les sous-catégories correspondantes juste en-dessous.
    En clair, je veux avoir un truc du genre
    Categorie1
    Sous_cat_a
    Sous_cat_b
    Categorie2
    Sous_cat_c
    etc...

    Tout ce que j'arrive à afficher c'est
    Catégorie1
    Catégorie2
    Catégorie3
    avec des liens vers une liste des sous-catégories correspondantes.
    Si quelqu'un a une idée, je suis à votre écoute.
    Merci d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    On ne peut pas te répondre sans voir la structure de ta table.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Par défaut
    La structure de la table est la suivante:
    categorieId
    categorieParentId
    categorieName

  4. #4
    Membre chevronné Avatar de Nheo_
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 323
    Par défaut
    Citation Envoyé par nassing Voir le message
    La structure de la table est la suivante:
    categorieId
    categorieParentId
    categorieName
    Bonjour,

    Imaginons que tu veuilles lister toutes les catégories / sous-catégories :
    sélection de toutes les catégories pour lesquelles categorieParentId est null
    Tu obtiens donc toutes tes catégories, tu peux ensuite sélectionner les sous-catégories.

    pour chaque catégorie, sélection de toutes les sous-catégories qui ont pour categorieParentId l'id de ta catégorie
    Si tu as besoin de plus d'infos, dit nous sous quel SGBD tu travailles.

  5. #5
    Membre confirmé
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Par défaut
    bonjour,
    voici une fonction qui permet d'afficher des domaines et des sous domaines sous forme d'une arborescence mais je n'arrive pas à les afficher dans des DIV sur une seule ligne à partir de cette fonction, comme j'utilise Zend framework je vous joins le modèle :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    public function getListHtmlDFA($array=array(), $parent=0, $level=0){
    					$html 		= "";
    					$prevLevel 	= 0;
    					if (!$niveau && !$prevLevel) $html.= "<ul>" ;
    					if(is_array($array)){
    						foreach ($array AS $key => $value) {
    						 	$order 	= $prevLevel != $parent ? 1 : $order+1;
    						 	$href 	= $this->action != '' ? "{$this->action}{$value->id}" : "" ;
    						 	if ($parent == $value->parent) {
    								if ($prevLevel < $niveau) $html .= "<ul>";
    								if(!$this->languages || !(is_array($this->languages) && count($this->languages)) || (is_array($this->languages) && count($this->languages)==0)){
    									$html .= "<li>&nbsp;&nbsp;&nbsp;&nbsp;";
    									$html .= "<input type='hidden'  value='{$value->id}'/>";
    									$html .= "<input type='hidden'  value='{$parent}'/>";
    									$html .= "<input type='hidden'  value='{$order}'/>";
    									if(count($this->getUrlCible())){
    										foreach($this->getUrlCible() as $urlCible){
    											$id = isset($urlCible['useId']) && $urlCible['useId'] == true ? $value->id : "" ;
    												$html.= "<span  onclick=window.location='{$urlCible['url']}{$id}'>{$urlCible['label']}</span>&nbsp;&nbsp;&nbsp;&nbsp;";
    										}
    									}
    								}else{
    									$html .= "<li id='lst_{$level}{$value->id}'><a>{$value->name}</a>&nbsp;&nbsp;&nbsp;&nbsp;";
    									$html .= "<input type='hidden' name='domaine_{$value->id}'  value='{$value->id}'/>";
    									$html .= "<input type='hidden' name='parent_{$parent}_{$value->id}_{$order}'  value='{$parent}'/>";
    									$html .= "<input type='hidden' name='order_{$parent}_{$value->id}_{$order}'  value='{$order}'/>";
    									if(is_array($this->languages) && count($this->languages)){
    										foreach($this->languages as $language){
    											$html .= "</span>&nbsp;&nbsp;";
    										}
    										if(count($this->getUrlCible())){
    											foreach($this->getUrlCible() as $urlCible){
    												$id = isset($urlCible['useId']) && $urlCible['useId'] == true ? $value->id : "" ;
    													$html .= "<span class='link' onclick=window.location='{$urlCible['url']}{$id}'>{$urlCible['label']}</span>&nbsp;&nbsp;&nbsp;&nbsp;";
    											}
    										}								
    									}
    								}
     
    								$prevLevel = $niveau;
    								$html .= $this->getListHtmlDFA($array, $value->id, ($niveau + 1));
    							}
    						}
    					}
    					if (($prevLevel == $niveau) && ($prevLevel != 0)) $html .= "</ul></li>";
    					else if ($prevLevel == $niveau) $html .= "</ul>";
    					else $html .= "</li>";
    					return $html;
    				}
    Si quelqu'un peut bien m'aider Merci d'avance

    merci pour ta réponse,
    je travaille sur phpmyadmin donc SGBD MYSQL

Discussions similaires

  1. Réponses: 7
    Dernier message: 28/01/2011, 10h09
  2. Solutions pour afficher une fenêtre de type tooltip ?
    Par elitost dans le forum SWT/JFace
    Réponses: 10
    Dernier message: 13/01/2008, 23h35
  3. Afficher une arborescence dans une JSP
    Par Linak dans le forum Struts 1
    Réponses: 8
    Dernier message: 20/07/2007, 15h53
  4. Réponses: 7
    Dernier message: 20/04/2007, 16h42
  5. Réponses: 4
    Dernier message: 22/08/2006, 15h16

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