Bonjour.

Quand je mets dans ma table le parent_id 0, ça va afficher la racine, c'est correcte; 1 pour le niveau 1, 2 pour le niveau 2, mais si j'ai plusieurs niveau 2 et que je mets un niveau supérieur, ça va pas se placer dans le bon niveau le sous-niveau.

Regardez l'image la table à gauche le parent_id et le résultat à droite. Vous allez voir de quoi je parle.

Je pensais que si je mettais 2 que ça allait se placer à un niveau 2 mais pas nécessairement à la bonne branche.

Qu'est-ce qui ne va pas dans mon code pour ne pas se placer à la bonne place?

Nom : requeterecursive.jpg
Affichages : 1284
Taille : 223,4 Ko

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
<?php
 
include 'db.php';
 
function getCategories($parent_id) {
    $sql = "SELECT * FROM category WHERE parent_id='$parent_id'";
    $db = getDB();
    $stmt = $db->query($sql);
    $res = $stmt->fetchAll(PDO::FETCH_OBJ);
    if($res!=NULL)
    {
        echo '<ul>';
        foreach($res as $row)
        {
            echo '<li>' . $row->parent_id .'-'. $row->name . '</li>';
            getCategories($row->id);
        }
        echo '</ul>';
    }
}
echo getCategories(0);
?>
C'est pas évident d'indiquer le bon parent_id pour que ça aille dans le bon niveau et surtout à la bonne catégorie.

J'ai besoin d'aide pour remanier mon code et apprécié. Ça fait un bon bout que je fais des lectures sur les requête
récursives avec Mysql.