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 :

Fil d'ariane à partir d'un résultat de requête nested


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    248
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 248
    Par défaut Fil d'ariane à partir d'un résultat de requête nested
    salut à tous

    j'ai un objet du genre (résultat de requête)
    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
     
    0 => 
        array
          'idPage' => string '8' (length=1)
          'titrePage' => string 'Accueil' (length=7)
          'nomLien' => string 'Accueil' (length=7)
          'urlSeoPage' => string 'Accueil' (length=7)
          'depth' => string '1' (length=1)
          'parent' => string '0' (length=1)
          'text' => string '<a href="http://demo.local">Accueil</a>' (length=54)
      1 => 
        array
          'idPage' => string '9' (length=1)
          'titrePage' => string 'Société' (length=9)
          'nomLien' => string 'Société' (length=9)
          'urlSeoPage' => string 'Societe' (length=7)
          'depth' => string '2' (length=1)
          'parent' => string '8' (length=1)
          'text' => string '<a href="http://demo.local/9-Societe">Société</a>' (length=56)
      2 => 
        array
          'idPage' => string '11' (length=2)
          'titrePage' => string 'Activités' (length=10)
          'nomLien' => string 'Activités' (length=10)
          'urlSeoPage' => string 'Activites' (length=9)
          'depth' => string '3' (length=1)
          'parent' => string '9' (length=1)
          'text' => string '<a href="http://demo.local/11-Activites">Activités</a>' (length=60)
      3 => 
        array
          'idPage' => string '20' (length=2)
          'titrePage' => string 'Partenaires' (length=11)
          'nomLien' => string 'Partenaires' (length=11)
          'urlSeoPage' => string 'Partenaires' (length=11)
          'depth' => string '1' (length=1)
          'parent' => string '0' (length=1)
          'text' => string '<a href="http://demo.local/20-Partenaires">Partenaires</a>' (length=63)
      4 => 
        array
          'idPage' => string '21' (length=2)
          'titrePage' => string 'COntact' (length=7)
          'nomLien' => string 'Contact' (length=7)
          'urlSeoPage' => string 'COntact' (length=7)
          'depth' => string '2' (length=1)
          'parent' => string '20' (length=2)
          'text' => string '<a href="http://demo.local/21-COntact">Contact</a>' (length=55)
    qui traduit l'arborescence suivante

    Accueil |
    --- Société |
    ------ Activités |

    Partenaires |
    --- Contact

    j'aimerai faire une fonction dans laquelle je dise
    crée moi le fil d'arianne de la page activités

    et la fonction me renvoi accueil > societe > activites

    vous voyez le délire ?
    ben en fait c'est achement compliqué :'(
    il faut partir en sens inverse ... et remonter l'arbre pour ne garder que ce qui m'intéresse...
    du coup je sais pas trop

    vala vala ..
    si qqun à ça sous la main

    thanks !
    @+

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    248
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 248
    Par défaut
    yes, mais l'idée est de ne pas refaire appel à des requêtes
    j'ai tout ce qu'il faut dans mon objet ...
    j'aimerai l'utiliser et me servir des propriétés parent ...

    j'ai fait ça mais ça tourne en boucle ...

    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
    function ariane($idPage) {
     
     
    			foreach($this->tree as $k=>$node){
    				trace ($node, $idPage);
    				if (trim($node['idPage']) == trim($idPage)) {
    					$result .= '>'.$node['nomLien'] ;
    					$parent = $node['parent'] ;
     
    				}
     
    			}
     
    			while ($parent != 0) {
    				$result .= $this->ariane ($parent);
    			}
    			trace ($result, 'result')	;
    		return $result;	
     
    	}

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    248
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 248
    Par défaut
    bon j'ai trouvé ...
    c'est un peu freestyle mais bon

    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
    	function getParent($idPage) {
    		foreach($this->tree as $k=>$node){
    			if (trim($node['idPage']) == trim($idPage)) {
    				$this->ariane[] = $node ;
    				return $node['parent'] ;
    			}
    		}
    	}
     
    	function ariane($idPage) {	
     
    			foreach($this->tree as $k=>$node){
    			//	trace ($node, $idPage);
    				if (trim($node['idPage']) == trim($idPage)) {
    					$this->ariane[] =  $node ;
    					$parent = $node['parent'] ;					
    				}			
    			}
     
    			while ($parent != 0) {
    				$parent = $this->getParent ($parent);
    			}
     
    			//trace ($result, 'result')	;
     
    			 asort($this->ariane);
    			//trace ($this->ariane, 'ariane')	;
     
    			foreach ($this->ariane as $a) {
    				$r .= $a['text'];
    				if ($i+1 < count($this->ariane) ) {
    					$r .= $this->arianeDelimiter;
    				}
    				$i++;
    			}
    			return $r;	
     
    	}
    si ça peut aider
    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Regular Expression à partir d'un résultat de requête SQL
    Par cam024 dans le forum Général Python
    Réponses: 6
    Dernier message: 09/07/2015, 14h19
  2. [AC-2007] Filtre de forme à partir d'un résultat de requête
    Par c-load13 dans le forum Access
    Réponses: 2
    Dernier message: 02/07/2012, 08h41
  3. Réponses: 17
    Dernier message: 18/08/2011, 10h44
  4. Générer un fil d'ariane à partir d'une table
    Par garthos dans le forum Hibernate
    Réponses: 3
    Dernier message: 12/12/2010, 17h38
  5. Réponses: 5
    Dernier message: 08/01/2009, 09h05

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