Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobranie produktow z danej kategorii i jej podrzednych
MrMag
post 13.02.2007, 00:58:02
Post #1





Grupa: Zarejestrowani
Postów: 154
Pomógł: 5
Dołączył: 24.02.2004

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


Schemat kategorii typu: id, parent_id, nazwa, etc

Jak pobrac produkty, ktore naleza do wybranego id_kategorii oraz jej podrzednych (praktycznie 4 poziomy zaglebien - wiecej nie bedzie). Jezeli sie da to zalezy mi na 1 zapytaniu. Rekurencyjnie to bym sobie poradzil.


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
tomaszdurka
post 13.02.2007, 01:39:00
Post #2





Grupa: Zarejestrowani
Postów: 32
Pomógł: 1
Dołączył: 12.02.2007

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


Mi do głowy przyszedł tylko jeden brzydki sposób.
Z subselectami ale wydajnościowo to nie wyjdzie dużo lepiej.

  1. SELECT * FROM types t1
  2. WHERE t1.parent_id IN (
  3. SELECT t2.id FROM types t2
  4. WHERE t2.parent_id IN (
  5. SELECT t3.id FROM types t3
  6. WHERE t3.parent_id IN [glowne_id]
  7. )
  8. ) OR t1.id IN (
  9. SELECT t2.id FROM types t2
  10. WHERE t2.parent_id IN (
  11. SELECT t3.id FROM types t3
  12. WHERE t3.parent_id IN [glowne_id]
  13. )
  14. ) OR t1.id IN (
  15. SELECT t3.id FROM types t3
  16. WHERE t3.parent_id IN [glowne_id]
  17. ) OR t1.id = [glowne_id]



Wydaje mi się że to zadziała i że jednak jest coś prostszego...

Ten post edytował tomaszdurka 13.02.2007, 02:10:36
Go to the top of the page
+Quote Post
MrMag
post 15.02.2007, 02:02:05
Post #3





Grupa: Zarejestrowani
Postów: 154
Pomógł: 5
Dołączył: 24.02.2004

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


wyglada na to, ze bede musial przetestowac Twoj sposob. Kobinowalem z joinami ale nie skonczylo sie to najlepiej :/


--------------------
Go to the top of the page
+Quote Post
prond
post 15.02.2007, 09:58:26
Post #4





Grupa: Zarejestrowani
Postów: 254
Pomógł: 10
Dołączył: 8.11.2006
Skąd: Warszawa

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


Moim zdaniem powinieneś użyć innej reprezentacji drzewa kategorii np.:
- left right
- przy użyciu ścieżki
- przy użyciu zakodowanej ścieżki

Jest ładnie opisane w tym artykule http://www.dbazine.com/oracle/or-articles/tropashko4

Reprezentacja 'left right' została użyta w CakePHP dla drzewa AROs i ACOs - dzięki temu możesz znaleźć gotowy, wiarygodny kod.


--------------------
--------------------------------------------------------------------------------
weblog.axent.pl
--------------------------------------------------------------------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 02:58