Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Wyświetlanie listy rekordów, Rekurencyjnie
cisu
post
Post #1





Grupa: Zarejestrowani
Postów: 157
Pomógł: 1
Dołączył: 15.03.2008
Skąd: Mirostowice Dolne

Ostrzeżenie: (0%)
-----


Witam. Do rzeczy. Oto moja tabelka foldery:
Kod
folder_id    folder_name    folder_parent
00000000001    AAA            00000000000
00000000002    BBB            00000000001
00000000003    CCC            00000000002
00000000004    DDD            00000000002
00000000005    EEE            00000000002
00000000006    FFF            00000000001
00000000007    GGG            00000000006
00000000008    HHH            00000000006
00000000009    III            00000000000

Potrzebuję teraz funkcji, która wyświetli takie drzewko
Kod
AAA
    BBB
        CCC
        DDD
        EEE
    FFF
        GGG
        HHH
III

Ma brać id rodzica i wyświetlać wszystkie podfoldery itd, nieważne ile będzie podfolderów, żeby analogiczne drzewko robiło.
Napisałem jedną, potem przerobiłem, nie działa. Zależy mi na jak najmniejszej liczbie zapytań do bazy.

Moja funkcja:
  1. function displayAllFoldersList($root, $level) {
  2. $query = mysql_query("SELECT * FROM foldery WHERE folder_parent='" . $root . "'");
  3. while($folder = mysql_fetch_assoc($query)) {
  4. echo "|-";
  5. for($i=0;$i<$level;$i++) {
  6. echo "-";
  7. }
  8. echo $folder['folder_name']."<br />";
  9. displayAllFoldersList($folder['folder_id'], $level);
  10. $level++;
  11. }
  12. }
Wyświetla mi to
Kod
|--AAA
|---BBB
|----CCC
|-----DDD
|------EEE
|----FFF
|---III
i za każdym razem wysyła zapytanie. Kombinowałem z tym na różne sposoby i nigdy nie jest tak, jak ma być (zamiast tabulatorów wyświetla "-" a oprócz tego przed każdym rekordem "|-", dlatego wygląda inaczej).

Pomoże ktoś?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 09:40