Member 13153537 Ответов: 1

Как создать меню и подменю с помощью таблицы PHP и mysql


у меня есть таблица в этих столбцах id,refid,name в моей таблице
мои данные как 1 0 A
2 0 б
3 0 C
4 1 А1
5 1 А2
6 2 B1
7 2 B2
8 3 С3
9 3 С4
10 3 С5
11 2 С7
12 2 С8
13 11 С9
14 11 С10

мой выход должен быть
--А1
--А2
Б
--В1
--В2
С
--С3
--С4
--С5
до этого он работает нормально но если я добавлю подпункты внутри других подпунктов как проверить и распечатать значения пожалуйста помогите мне заранее спасибо

Что я уже пробовал:

я попробовал это сделать, но не получил ответа, пожалуйста, помогите мне.
<pre><?php

$con = new mysqli("localhost", "root", "", "test");

$topLevelItems = "SELECT id,refid,name FROM `test` WHERE refid = 0";
$res=mysqli_query($con,$topLevelItems);

foreach($res as $item) {
 echo '<a href="...">$item["name"]</a>';
 $subItems ="SELECT id, name FROM `test` WHERE refid='$item['id']'";
 $res2=mysqli_query($con,$subItems)
 foreach($res2 as $subItem) {
    echo '<a href="...">$subItem["name"]</a>';
 }
}



 ?>

1 Ответов

Рейтинг:
0

Member 13153537

у меня есть решение, спасибо.

$resultMainMenu = mysql_query("SELECT * FROM test WHERE refid=0 ORDER BY name ASC") or die(mysql_error());
while($row = mysql_fetch_array($resultMainMenu)){
    echo $row['name'] . '<br />'; // echo main menu
    $resultSubmenu = mysql_query("SELECT * FROM test WHERE refid=" . $row['id'] ." ORDER BY name ASC") or die(mysql_error());
    if(mysql_num_rows($resultSubmenu) >= 1){
        while($rowSub = mysql_fetch_array($resultSubmenu)){
            echo ' -- ' . $rowSub['name'] . '<br />'; // echo sub menu
        }
    }
}