Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]jak zadać zapytanie do bazy
Forum PHP.pl > Forum > Przedszkole
Krismen
Witam, tworzę tabelę w której będą kategorie i podkategorie sklepu. Gdzieś wyczytałem że najlepiej dla kategorii i podkategorii stworzyć jedną tabelę, więc próbuję zrobić to tak:

id kategoria id_rodzica
1 telewizory 0
2 AGD 0
3 sony 1
4 panasonic 1
5 lodowki 2
6 zelaska 2
7 pralki 2

I teraz czy da się pobrać jednym zapytaniem, żeby otrzymać coś takiego:

telewizory
sony
panasonic

AGD
lodowki
zelaska
pralki

Dałem takie zapytanie:
  1. $pytanie='select k1.id, k2.kategoria, k3.id_rodzica
  2. from dane k1, dane k2, dane k3
  3. where k3.id_rodzica=0
  4. and k1.id=k3.id_rodzica';
  5.  


Przyznam że nie umiem do końca zatrybić z tymi aliasami wstydnis.gif Czy to jest dobre rozwiązanie żeby kategorie i podkategorie łądować do jednej tabeli, czy lepiej zrobić dwóch osobnych. Oczywiście będzie jeszcze tabela dla produktów ale na razie męczę się z tym. Proszę o pomoc

tehaha
poczytaj o "drzewo lewo prawo"http://articles.sitepoint.com/article/hierarchical-data-database/2, albo "drzewko ip"
thomson89
Powiem ci, że też kiedyś miałem taki problem. I w sumie nadal mam i nadal nie wiem jak go rozwiązać.

Ja zrobiłem to bardzo nie ładnie i nie profesjonalnie - kilka kolejnych pętli "w pętli" wybiera najpierw rodziców, i drugą pętlą podkategorie, i potem trzecią pętlą jeszcze niższe podkategorie.
Krismen
Czyli rozumiem że zrobiłeś wszystko w jednej tabeli ? A może lepiej by było to podzielić.
#luq
Przecież @tehaha podał Ci wszystko na tacy. O wiele lepszym sposobem tworzenia drzewa w relacyjnych bazach danych jest struktura ip lub lewo-prawo
Od siebie dodam lekturę TEGO

Jeśli jednak upierasz się przy swoim to możesz skorzystać z mojej klasy, która obrobi Ci po stronie PHP wynik jednego zapytania i stworzy z tego drzewo, ale tak jak mówię jeśli to Ty planujesz strukturę bazy to wykorzystaj inny sposób prezentacji drzewa niż parent_id.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.