mam taką bazę danych:http://www.rks.net.pl/bazaa.txt
chciałbym w możliwie najwydajniejszy sposób wygenerować w oparciu o taką bazę menu w formie
- Kategoria 1
-- podkategoria 1
-- podkategoria 2
---- podpodkategoria 1
---- podpodkategoria 2
---- podpodkategoria 3
-- podkategoria 3
...
...
Czyli im poziom niżej tym więcej "-".
aktualnie kombinuję z takim kodem:
try { $tablicaA = $ms->query_select("SELECT id, title, parent_id FROM " . $GLOBAL['bfprzed'] . "multikategorie WHERE level = '2' ORDER by id ASC;"); foreach ($tablicaA as $wynA => $warttA) { if ($warttA['id'] !=325193){ $select = null; if ($webid['1'] == $warttA['id']) $select = " style=\"color: #ff0000;\" "; $shortname = przyjazny_string(baza_odczyt($warttA['title'])); //////// if ($select != "") { try { $tablicaB = $ms->query_select("SELECT id, title, parent_id FROM " . $GLOBAL['bfprzed'] . "multikategorie WHERE parent_id = '$warttA[id]' ORDER by id ASC;"); foreach ($tablicaB as $wynB => $warttB) { $select = null; if ($webid['2'] == $warttB['id']) $select = " style=\"color: #ff0000;\" "; $shortname = przyjazny_string(baza_odczyt($warttB['title'])); if ($select != "") { $tablicaC = $ms->query_select("SELECT id, title, parent_id FROM " . $GLOBAL['bfprzed'] . "multikategorie WHERE parent_id = '$warttB[id]' ORDER by id ASC;"); foreach ($tablicaC as $wynC => $warttC) { $select = null; if ($webid['3'] == $warttC['id']) $select = " style=\"color: #ff0000;\" "; $shortname = przyjazny_string(baza_odczyt($warttC['title'])); echo"<b><a href=\"kategorie,$warttA[id],$warttB[id],$warttC[id].html\" $select>--$warttC[title]</a></b>"; } } } } } } catch (Exception $error) { echo '<b>Komunikat</b>: ' . $error->getMessage() . '<br /><b>Plik</b>: ' . $error->getFile() . '<br /><b>Wiersz</b>: ' . $error->getLine() . '<br /><b>IP</b>: ' . $_SERVER['REMOTE_ADDR'] . ' | <b>LINK</b>: ' . $_SERVER['REQUEST_URI'] . '<br /><br />' . $error->getTraceAsString(); } } //////// } }} } catch (Exception $error) { echo '<b>Komunikat</b>: ' . $error->getMessage() . '<br /><b>Plik</b>: ' . $error->getFile() . '<br /><b>Wiersz</b>: ' . $error->getLine() . '<br /><b>IP</b>: ' . $_SERVER['REMOTE_ADDR'] . ' | <b>LINK</b>: ' . $_SERVER['REQUEST_URI'] . '<br /><br />' . $error->getTraceAsString(); }
ale niestety mam dużo danych w bazie danych i menu wczytuje mi się dłuuuuugo

Macie może jakiś pomysł jak to zrobić lepiej??:/
Northwest