Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] Pobieranie wszystkich rodziców kategorii
netvalue
post
Post #1





Grupa: Zarejestrowani
Postów: 199
Pomógł: 2
Dołączył: 9.06.2008

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


Hej

Mam typowo tabelkę kategorii:
  1. id | id_parent | name
  2. 1 | 0 | kategoria
  3. 2 | 0 | kategoria 2
  4. 3 | 1 | subkategoria
  5. 4 | 3 | ostatnia podkategoria
  6. 5 | 3 | ostatnia podkategoria 2
  7.  
  8.  


teraz jak stworzyć stworzyć zapytanie aby pobrać wszystkie kategorie nadrzędne dla kategorii o id 4 i 5.
Tak żeby też nie było zdublowania kategoria o id 3 , do której należą kategorie 4 i 5.


Docelowo chce uzyskać drzewo

-kategoria
--subkategoria
---ostatnia podkategoria
---ostatnia podkategoria 2

obecnie mam takie zapytanie:
  1. SELECT T2.id_category, T2.name
  2. FROM (
  3. SELECT
  4. @r AS _id,
  5. (SELECT @r := id_parent FROM category WHERE id_category = _id) AS id_parent,
  6. @l := @l + 1 AS lvl
  7. FROM
  8. (SELECT @r := 4, @l := 0) vars,
  9. category h
  10. WHERE @r <> 0) T1
  11. JOIN category T2
  12. ON T1._id = T2.id_category
  13. ORDER BY T1.lvl DESC


i otrzymuje drzewko w górę ale tylko dla podkategorii ID 4. Moglbym wykonac ponownie te zapytanie dla ID 5 ale otrzymam znowu drugie drzewko...
chyba ze bym wykonal dwa takie zapytania dla kazdego ID odzielnie (4,5) wrzucil rezultaty do tablicy php i nastepnie polaczyl te tablice ze sobą z wykluczeniem zdublowanych id kategorii..
hmmm jest to jakies rozwiazanie ale chyba malo optymalne robic odzielne takie zapytania dla kazdego ID odzielnie biorac pod uwage ze moze byc ich nawet 100

Ten post edytował netvalue 28.08.2014, 14:27:54
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: 26.08.2025 - 00:08