Bonjour,

j'ai besoin de créer php class pour gérer arbre tertiare (ajout element, affiché arbre a partir d'un element..)
chaque element a au maximum 3 enfants..

j'ai creer la BD telque chaque element a :
Id
reffer_id (parent id)
row (niveau de l'element: 1er element row=1, ses enfant automatiquement row=2..)
column (position de l'element a son niveau "row" )

11 réponses


Une idée ::

<?php

CONST max = 3
class Element{

    private $id;
    private $childs = [];
    private $parent;

    public __contruct(){}

    public setId($id){
        $this->id = $id;
    }

    public getId(){
        return $this->id;
    }

    public setChild($element){
        if(count($childs) < max){
            $this->childs[] = $element;
        }
    }

        public setParent($element){
            $this->parent = $element;
    }

    /.../
}

class Tree {

    private $elements = [];

    public pushElement(Element $element){
        $this->elements[] = $element;

    }

    public __toString($id){
        if(!is_nan($id) && $id !=0){ // si j est un nombre et non null

            for($i = $id; $i < count($elements);$i++){
                echo "id=$id<br>";
                echo "parent=" $parent->getId(); //après ont peut récupérer les enfants etc...
                echo "child = <br>";
                //on parcours les enfants
                for($j=0;$j < count($this->childs); $j++{
                    echo "enfant n°". ($j+1) . " = " . $this->childs[$j]->getId();
                }
            }
        }

    }

}

Merci pour votre réponse, mais ce n'est pas clair! comment l'utiliser?

Ce n'est pas utilisable pour le moment...
c'est un petite maquette pour que tu vois comment construire tes classes.
Tree est l'arbre qui contient une collection d'élement.
Chaque element possède un id, 3 enfant et un parent.
Pour le tête de l'arbre tu n'as pas de parents. (un element par exemple avec un id null)

j'ai la table en DB avec la strucure:
id,id_parent,row,column
id_parent (0 pour 1er element de l'arbre)
row= niveau de l'element (1er element row=1)
column= position de l'element (1er element column=1 , mais pour les elements de row=2 la valeur de column de 1 à 3, row=3 ==> column de 1 à 9 ...etc puisque chaque element a au max 3 elements)

j'ai besoin class et exemple fonctionel pour parcourir l'arbre depuis un elemnt et ajouter nouveau element à partir de son parent!!!
Vous pouvez m'aider?

Peux-tu me fournir à l'adresse mehdikacim@hotmail.fr la db ?

TELECHARGER TREE.ZIP
Dans cette archive j'ai fait une chose de fonctionelle

Bonjour,
j'ai vous envoyé la BD à votre email..
j'ai téléchargé votre zip file mais ne marche pas! Il faut faire quelque chose?

il faut mettre sur un serveur php, et dans le dossier ouvrir un terminal et faire :

composer dump-autoload

il est en serveur php mais j'ai pas un terminal

Si tu en a forcément un

windows + x   puis c puis entré

Au préalable installe composer

si c'est installer sur un server mutualisé il n'en auras pas. faut voir ou il est installer