Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL] Drzewka kategorii - wyświetlanie rekordów "wstecz"
Forum PHP.pl > Forum > PHP
matix
Witajcie.

Może ten temat nie za bardzo do was przemawia, więc trochę bardziej opiszę ten problem.
Mam bowiem zwykłe drzewka kategorii opartych o pole parent_id. No i powiedzmy kategorie wyglądają tak:

Kod
/ Pierwsza (parent_id = 0, id = 1)
  - podkategoria (parent_id = 1, id=4)
  - podkategoria 2 (parent_id = 1, id = 5)
       + podkategoria podkategorii drugiej (parent_id = 5, id = 6)
/ Druga (parent_id = 0, id = 2)
/ Trzecia (parent_id = 0, id = 3)


Problem polega na tym, że w tych kategoriach umieszczam filmy. I gdy wchodzę do Kategorii Pierwsza (id = 1) to potrzebowałbym pobrać listę powiedzmy 10 najnowszych filmów z wszystkich jej dzieci.

Jak do tego podejść?
Jedyne co przychodzi mi do głowy to zapytanie w stylu:

  1. SELECT cms_movies.* FROM `cms_movies` WHERE `cms_movies`.movie_id IN ( SELECT .... UNION ALL SELECT ... )

Ale nie do końca chyba jestem w stanie to przewidzieć. Ktoś ma jakieś pomysły? smile.gif

Pozdro smile.gif
wookieb
W takich przypadkach stosuje się drzewo lewo, prawo (left right).
http://www.google.pl/#hl=pl&source=hp&...804a89cea128776
matix
Też już do tego doszedłem, ale akurat w tym projekcie jest taka struktura bazy i nie mam za bardzo możliwości zmiany tego.
wookieb
No a nie lepiej po prostu przerobić na drzewo left,right bo w przeciwnym wypadku twoje rozwiązanie może być (podkreślam "może" - czyli na małej ilości danych będzie ok, na większych tragedia) bardzo nie wydajne. (nie określiłeś do końca pojęcia "nie mam możliwości")

Pozostaje ci jedynie stworzenie procedury, która pobierze Ci wszystkie dzieci od danego elementu.
Niestety nie mam takiej gotowej, żebym mógł podać.
matix
Po prostu aplikacja już działa i jest wykodzona. Potrzebuję jednak zrobić cały listing i niestety potrzebne mi to jest. Wyniki będzie można lajtowo cache-ować na dłuugi czas.
Najważniejsze jest, by dobrze to zapytanie napisać.
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.