interval et rendu html

Petit nouveau ! | 4 Messages

13 nov. 2011, 19:09

bonjour,

je trouve beaucoup de tuto pour expliquer les intervalles mais personne ne montre comment faire le rendu ce qui me pose aujourd'hui des problèmes.
j'ai une table :
id parent_id lft rght name

je souhaiterai faire une rendu dans une table avec un décalage pour les enfants

ex :

dev
--php
----exemples
----tuto
maison
--liens
--articles
----tuto
j'obtiens bien l'ensembles des resultats dans un array mais comment mettre en forme avec des foreach je suppose ?
merci d'avance.

ViPHP
ViPHP | 5462 Messages

13 nov. 2011, 20:52

encore du crosspost ...

Petit nouveau ! | 4 Messages

13 nov. 2011, 21:12

encore du crosspost ...
Oui je suis désolé, mais j'ai une vie et un travail et je passe beaucoup d'heure à apprendre tout seul sans personne qui connaît le développement.
Je sais qu'il y a des gens où c'est leur métier et où j'espère que cette question paraîtra simple.
C'est le dernier point qu'il me reste à faire pour réaliser mon livre photo de famille et sans ça je ne préfère pas continuer.
Donc merci de comprendre que j'ai déjà énormément chercher sur le net et passé de nombreuses heures et que je n'y arrive toujours pas.
Merci pour votre compréhension et pour tout post pouvant m'aider de la manière la plus explicite possible.

Petit nouveau ! | 4 Messages

15 nov. 2011, 16:12

voilà déjà un début, mais...
   foreach ($categories as $k=>$v){
            //récupère les infos de la rubriques
            
            if ($levelPrevious < $v['Category']['level']) {
                    $r .= str_repeat('<ul>', $v['Category']['level'] - $levelPrevious);
                    $levelPrevious=$v['Category']['level'];
                    //si feuilles on modifie le lien
                    IF($v['Category']['rght'] - $v['Category']['lft'] == 1){
                            $r .= '--'.$v['Category']['name'].'<br />';
                    }
                    else{
                            $r .= '--+'.$v['Category']['name'].'<br />';
                    }
            }
            elseif($levelPrevious > $v['Category']['level']){
                    $r .= str_repeat('</ul>', ++$levelPrevious - $v['Category']['level']);
                    $levelPrevious=$v['Category']['level'];
                    //si feuilles on modifie le lien
                    IF($v['Category']['rght'] - $v['Category']['lft'] == 1){
                            $r .= '--'.$v['Category']['name'].'<br />';
                    }else{
                            $r .= '--+'.$v['Category']['name'].'<br />';
                    }
            }
            else{
                    //si feuilles on modifie le lien
                    IF($v['Category']['rght'] - $v['Category']['lft'] == 1){
                            $r .= '<li>'.$v['Category']['name'].'</li>';
                    }
                    else{
                            $r .= '<li>'.$v['Category']['name'].'</li>';
                    }
                    $levelPrevious=$v['Category']['level'];
            }
    }
Mais ça donne ça donc...
Développement

--+Php
--Code
Liens

--+Maison

--Plans

Ce qui m'embête le plus est de mettre une notion de level. Je souhaiterai faire sans.
Modifié en dernier par tyty22 le 15 nov. 2011, 16:49, modifié 1 fois.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

15 nov. 2011, 16:31

Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans un forum plus adapté
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 4 Messages

15 nov. 2011, 23:29

Bon j'ai trouvé une solution sans la notion de level qui est pas mal mais qui m'oblige à faire pas mal de requête donc si quelqu'un à mieux, merci.

Code : Tout sélectionner

/*on ajout un caractere en fonction du nom d'ancetre*/ for ($i=2;$i <=$v['nbparents']; $i++){ if($v['Category']['parent_id'] != 0){ echo '<span style="margin:3px;color:#979EA3">|-</span>'; } } if($v['Category']['parent_id'] == 0){ echo '-&nbsp;'; } echo $v['Category']['name'].''; echo '<br />';
Ca donne ce que je veux mais au niveau de la requête je suis obligé de faire un select et après un foreach qui prend les différents id. Donc pour 10 rubriques, 10 count.

Merci si qq'un à mieux