Afficher le flux RSS

krach-kun

Créer une liste d’arborescence à partir d'une représentation intervallaire en PHP

Noter ce billet


Il s'agit d'afficher une liste déroulante de source d'informations partant d'une représentation intervallaire. Le but est d'obtenir quelque chose comme :
Cliquez sur l'image pour l'afficher en taille normale

Nom : Sélection_060.png 
Affichages : 182 
Taille : 8.3 Ko 
ID : 410Cliquez sur l'image pour l'afficher en taille normale

Nom : Sélection_059.png 
Affichages : 128 
Taille : 3.0 Ko 
ID : 411

La profondeur au niveau de chaque nœud est infinie. La représentation dans la base dispose de :
Code:
id
parentid
leftid
rightid
name
Il existe toute sorte de tutoriels sur le net pour savoir comment construire la base, ce qui nous intéresse ici, c'est comment générer un affichage en liste déroulante . C'est un système de représentation qui permet une lecture rapide non récursive pour liste toute l'arborescence . Une simple requête pour récupérer la liste dans la base
Code:
SELECT parentid, leftid, rightid, name FROM categories ORDER BY leftid ASC
Et maintenant le code PHP pour générer la liste(code source de phpbb)

Code PHP:
$right 0;
$padding_store = array('0' => '');
$padding '';
foreach (
$categories as $item):
    if (
$item->leftid $right) {
        
$padding .= '_ ';
        
$padding_store[$item->parentid] = $padding;
    } else if (
$item->leftid $right 1) {
        
$padding = isset($padding_store[$item->parentid]) ? $padding_store[$item->parentid] : '';
    }
    
$right $item->rightid;
    echo 
"$padding {$item->name}";
endforeach;
unset(
$padding_store); 
Il suffit maintenant de placer les balises select et option pour avoir la liste déroulante

Envoyer "Créer une liste d’arborescence à partir d'une représentation intervallaire en PHP" à Digg Envoyer "Créer une liste d’arborescence à partir d'une représentation intervallaire en PHP" à del.icio.us Envoyer "Créer une liste d’arborescence à partir d'une représentation intervallaire en PHP" à StumbleUpon Envoyer "Créer une liste d’arborescence à partir d'une représentation intervallaire en PHP" à Google

Tags: Aucun Ajouter / Editer les tags
Catégories
Base de données - PHP

Commentaires