Witam,
proszę Was o pomoc przy napisaniu kodu PHP, generującego menu wielopoziomowe zapisane w bazie danych mySQL.
Struktura tabeli mySQL:
pageID object
dir name menu superior position status
2
system chat Czat z klientem 1 1 01 1
3
system messages Wiadomości 1 1 02 1
5
system messages Wiadomości mailingowe 1 4 01 1
6
system emails Baza adresów mailingowych 1 4 02 1
7
system groups Grupy mailingowe 1 4 03 1
8
system notifications Powiadomienia 1
NULL 02 1
9
system orders Zamówienia 1
NULL 03 1
10
system servers Serwery 1
NULL 04 1
11
system files Pliki 1
NULL 05 1
12
system base Baza plików 1 11 01 1
13
system manager Menadżer plików 1 11 02 1
14
system download Dział download 1 11 03 1
15
system pages Podstrony 1
NULL 06 1
16
system service Strony serwisu 1 15 01 1
18
system add Dodaj stronę statyczną 1 17 01 1
20
system reports Raporty 1 19 01 1
21
system backups Backupy 1 19 02 1
22
system stats Statystyki 1 19 03 1
23
system profile Mój profil 1 19 04 1
24
system users Użytkownicy 1 19 05 1
25
system admins Administracja 1 19 06 1
26
system visitors Goście 1 19 07 1
27
system modules Moduły 1 19 08 1
28
system config Konfiguracja
1 19 09
1
Tak powinno wyglądać wygenerowane drzewo:
Korespondencja
Czat z klientem
Wiadomości
System mailingowy
Wiadomości mailingowe
Baza adresów mailingowych
Grupy mailingowe
Powiadomienia
Zamówienia
Serwery
Pliki
Baza plików
Menadżer plików
Dział download
Podstrony
Strony serwisu
Strony statyczne
Dodaj stronę statyczną
System
Raporty
Backupy
Statystyki
Mój profil
Użytkownicy
Administracja
Goście
Moduły
Konfiguracja
Aktualny kod PHP:
$list_menu = null;
$query = safe_query("SELECT * FROM `".PREFIX."pages` WHERE status='1' AND object='system' ORDER BY position ASC");
$count = mysql_fetch_array(safe_query
("SELECT count(pageID) as max FROM `".PREFIX
."pages` WHERE status='1' AND object='system' AND superior='".$dx['pageID']."'")); if($count['max'] > 0) {
$list_menu .= '<li>'.$dx['name'].'<ul>';
$query2 = safe_query("SELECT * FROM `".PREFIX."pages` WHERE status='1' AND object='system' AND superior='".$dx['pageID']."' ORDER BY position ASC");
$list_menu .= '<li>'.$dx2['name'].'</li>';
}
$list_menu .= '</ul></li>';
} elseif($dx['superior'] == null || empty($dx['superior'])) { $list_menu .= '<li>'.$dx['name'].'</li>';
}
}
Aktualny kod nie generuje mi drzewo tylko do takiej postaci:
Korespondencja
Czat z klientem
Wiadomości
System mailingowy
Powiadomienia
Zamówienia
Serwery
Pliki
Baza plików
Menadżer plików
Dział download
Podstrony
Strony serwisu
Strony statyczne
System
Raporty
Backupy
Statystyki
Mój profil
Użytkownicy
Administracja
Goście
Moduły
Konfiguracja
więc jak widać są tylko dwa poziomy.
Dodam, że w komórce "superior" zdefiniowałem ID nadrzędnego rekordu.
Czy ma ktoś z Was jakieś pomysły ?
Za wszelką pomoc będę bardzo wdzięczny,
Serdecznie pozdrawiam.
---------
JUŻ SOBIE PORADZIŁEM

Można usunąć temat...
Ten post edytował peja1990 23.04.2012, 17:15:00