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" )
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();
}
}
}
}
}
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?
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