Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tworzenie drzewka kategorii jednym zapytaniem
thomson89
post
Post #1





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Witam!

Chciałbym utworzyć takie drzewko kategorii:
(IMG:http://ifotos.pl/img/drzewko_nreeas.png)

Jednym zapytaniem, na podstawie takiej tabelki:
(IMG:http://ifotos.pl/img/struktura_nreeqe.png)

Niestety kompletnie nie wiem jak się za to zabrać.

Obecnie, robię to poziomami. Łączę się z bazą, zapytanie pobieram kategorie 1-szego poziomu. Sprawdzam czy są kategorie które mają id tej kategorii w polu id_kategori_wyzszej... itd.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Panienki przecież podano rozwiązanie. Drzewo left right z parametrem depth i wsio. Po co jest dalsza dyskusja?
Go to the top of the page
+Quote Post
aio
post
Post #3





Grupa: Zarejestrowani
Postów: 28
Pomógł: 4
Dołączył: 13.11.2009

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


Cytat(wookieb @ 25.03.2010, 15:32:19 ) *
Panienki przecież podano rozwiązanie. Drzewo left right z parametrem depth i wsio. Po co jest dalsza dyskusja?

np. żeby się nie zastanawiać co jest left a co jest right, Panienko?

Cytat(Mchl @ 25.03.2010, 15:27:46 ) *
Funkcja fajna, ale trudno to nazwać 'jednym zapytaniem' (IMG:style_emoticons/default/winksmiley.jpg)

no ok, więc odpowiadając stricte na pytanie postawione w pierwszym poście:
  1. SET @H:='', @P:=0;
  2. SELECT *
  3. FROM nodes T
  4. WHERE (@H:=T.id)
  5. AND (@P:=T.parent)
  6. AND (
  7. SELECT COUNT((@H:=CONCAT(wT.id,',',@H)) | (@P:=wT.parent))
  8. FROM (
  9. SELECT *
  10. FROM nodes
  11. ORDER BY poziom DESC
  12. ) wT
  13. WHERE @P=wT.id
  14. )
  15. OR @P=0
  16. ORDER BY @H
Go to the top of the page
+Quote Post

Posty w temacie
- thomson89   Tworzenie drzewka kategorii jednym zapytaniem   21.03.2010, 20:04:13
- - WebSee   Pobierzesz, to jednym zapytaniem, tylko musisz odp...   21.03.2010, 20:12:03
- - Mchl   Jednym uniwersalnym zapytaniem nie da się. Drzewa ...   21.03.2010, 20:12:51
- - zegarek84   można to posortować i poukładać jednym zapytaniem....   21.03.2010, 22:03:43
- - wookieb   Do tego typu zadań idealne jest drzewo left right,...   21.03.2010, 22:41:30
- - m44   Jednakże wadą metody z left + right jest to, że ni...   21.03.2010, 23:23:40
- - Crozin   CytatJednakże wadą metody z left + right jest to, ...   21.03.2010, 23:30:30
- - celbarowicz   wygląda na to, że trzy poziomy Tobie wystarczają ...   22.03.2010, 08:46:01
- - icetique   Albo zainteresuj się doctrine. http://www.doctri...   22.03.2010, 09:05:22
- - Crozin   @icetique: Jak jest związek pomiędzy strukturą drz...   24.03.2010, 00:48:11
- - icetique   Ślepy? Doctrine obsługuje drzewa... Nie wiem, czy...   24.03.2010, 07:48:03
- - Crozin   - Chcę odsłuchać sobie płytę CD, jak to zrobić? - ...   24.03.2010, 13:17:36
- - icetique   Raczej tak bym to ujął: - Chcę odsłuchać sobie pł...   24.03.2010, 17:15:02
- - aio   No to żeby nie było sporu o to czy kupować samochó...   25.03.2010, 12:12:43
- - Mchl   Funkcja fajna, ale trudno to nazwać 'jednym za...   25.03.2010, 15:27:46
- - wookieb   Panienki przecież podano rozwiązanie. Drzewo left ...   25.03.2010, 15:32:19
- - aio   Cytat(wookieb @ 25.03.2010, 15:32:19 ...   25.03.2010, 23:50:12


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: 10.10.2025 - 16:26