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
WebSee
post
Post #2





Grupa: Zarejestrowani
Postów: 50
Pomógł: 3
Dołączył: 6.12.2009

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


Pobierzesz, to jednym zapytaniem, tylko musisz odpowiednio posortować, w Twoim przypadku, musisz to zrobić tak, by one kategorie ułozyły się w takiej koleności, w jakiej będą wyświetlane (sortowanie po id, poziom, id_kategori_wyższej)

A póżniej tylko odpowiedni kod w PHP, który sprawdza czy dana kategoria jest kategorią główną lub należy do podkategorii

Mój kod (w nim miałem tylko kategorie i podkategorie), ale może Ci się przyda:
  1. $go = mysql_query ('SELECT * FROM category ORDER BY cid, catid ');
  2. while ($category = mysql_fetch_assoc($go)) {
  3. if ($cid == $category['catid']) { //jeżeli dana kategoria, nalezy do podkategorii
  4. echo '<li class="down"><a href="">'.$category['name'].'</a></li>';
  5. }
  6. else { //jeżeli jest to kategoria główna
  7. echo '<li>'.$category['name'].'</li>';
  8. $cid = $category['cid']; //wtedy przypisujesz do zmiennej jej id, aby póżniej sprawdzić, czy następne kategorie do niej należą czy nie, jeżeli nie należą, to oznacza że kolejna kategoria jest główna i znów to samo
  9. }
  10. }


Ten post edytował WebSee 21.03.2010, 20:13:15
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: 17.10.2025 - 02:30