Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] system kategorii
jankes83
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 5
Dołączył: 23.12.2009

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


Witam

Próbuje zrobić prosty system kategorii do galerii zdjęć. Na razie osiągnąłem tylko możliwość dodawania głównej kategorii i jednej podkategorii.
Struktura bazy wyglada mniej wiecej tak:
Kategorie
|id||name||parent_id|
1 Kat1 0
2 Kat2 0
3 Kat3 2
4 Kat4 2
5 Kat5 1

Przy tym rozwiązaniu mogę dodać do kazdej kategorii wiele podkategorii, i do kazdej podkategorii wiele podpodkategorii itd.
Mam jednak problem z banalna sprawą. W jaki sposób wyświetlić to gdziekolwiek?

W tym momencie mam skrypt ktory działa mniej wiecej w ten sposób:

1. Wyswietl pierwsza kategorie i sprawdz czy `parent_id` <> 0;
2. Jesli tak to wykonaj nowe zapytanie sql, w ktorym wyszukasz wszystkie podkategorie z `parent_id` = id

Te rozwiazanie jest wg mnie dobre ale tylko jesli ma wyswietlac się jedno "zaglebienie". Gdybym chciał wiecej tych "zaglebien" to musiałbym dla kazdego robić kolejne zapytanie, a chcialbym zeby ilość zaglebien była dynamiczna.

Podsumowując:

Tak mi się wyświetla:

  1. Kategoria ppierwsza
    1. Podkategoria pierwsza
    2. Podkategoria druga
    3. Podkategoria trzecie
  2. Kategoria druga
  3. Kategoria trzecia
  4. Kategoria czwarta

Chciałbym wyświetlać tak:

  1. Kategoria pierwsza
    1. Podkategoria pierwsza
    2. Podkategoria druga
      1. Podpodkategoria pierwsza
      2. Podpodkategoria druga
        1. Podpodpodkategoria pierwsza
          1. Itd, itd....
  2. Kategoria druga
  3. Kategoria trzecia
  4. Kategoria czwarta

Z góry dziękuję za pomoc.

Ten post edytował jankes83 5.02.2010, 09:35:00
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jankes83
post
Post #2





Grupa: Zarejestrowani
Postów: 32
Pomógł: 5
Dołączył: 23.12.2009

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


Mam ten kod:
  1. function display($parentID, $tab) {
  2. if (!is_array($tab[$parentID])) return; #czy kategoria ma podkategorie?
  3. echo '<ul>';
  4. foreach ($tab[$parentID] as $element) { #iteracja podkategorii
  5. echo '<li>'.$element['name'];
  6. display($element['id'], &$tab); #wyswietlenie podkategorii
  7. echo '</li>';
  8. }
  9. echo '</ul>';
  10. }
  11.  
  12. $q=mysqli_query($mysqli, 'SELECT * FROM kategorie');
  13. $categories=array();
  14. while($r=mysqli_fetch_assoc($q)){
  15. $categories[$r['parentID']][$r['id']]=$r;
  16.  
  17. }
  18. echo display($categories[$r['parentID']], $categories[$r['parentID']][$r['id']]);
  19.  


wszystkie dane znajdują się w tablicy, ale funkcja display nie zwraca nic.

Czy wrzucam tu dobre zmienne?:
  1. echo display($categories[$r['parentID']], $categories[$r['parentID']][$r['id']]);
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: 14.10.2025 - 14:20