Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie drzewka kategorii z jednej tabeli
Forum PHP.pl > Forum > Bazy danych > MySQL
L_Devil
Witam!

Chciałbym, żeby moja baza selekcjonowała rekordy na drzewko kategorii. Struktura bazy wygląda tak:

Kod
+--+-----+-----+---------------+
|id|owner|allow|      name     |
+--+-----+-----+---------------+
|1 |NULL |  0  |Rękodzielnictwo|
|2 |  1  |  1  |   Biżuteria   |
|3 |  2  |  1  |     Drobna    |
|4 |  1  |  0  |   Ze skóry    |
|5 |  4  |  1  | Torby/Paski   |
|6 |  4  |  1  |    Kurtki     |
|7 |NULL |  1  |  Półprodukty  |
+--+-----+-----+---------------+
Gdzie pole owner oznacza id rekordu nadrzędnego, lub NULL w przypadku jego braku (wtedy rekord jest korzeniem (root) ), allow i name to dane do pobrania. Ilość zagnieżdżeń jest nieograniczona, zatem zapytanie powinno, o ile to możliwe, korzystać z rekurencji. Czy da się coś takiego osiągnąć w MySQL 5?

Spodziewany rezultat:
Kod
+> Rękodzielnictwo - bez allow
|+> Biżuteria - z allow
|-> Drobna - z allow
|+> Ze skóry - bez allow
|-> Torby/Paski - z allow
|-> Kurtki - z allow
-> Półprodukty - z allow
w formie tablicy wielowymiarowej w PHP
ActivePlayer
zapytania rekurencyjne w pętli - mało optymalne ale do prostych zastosowań najłatwiejsze do implementacji
L_Devil
To MySQL ma jakąś pętlę?

Czy może chodzi o pętlę w php?

Tych kategorii nie będzie dużo, więc tak się da zrobić smile.gif Tylko byłem ciekaw czy istnieje szybsza metoda smile.gif
php programmer
najłatwiej chyba, proste pytanie, które pobiera wszystkie wiersze bez żadnego warunku
  1. SELECT * FROM drzewo


a potem to w php wkładasz do tablicy i obrabiasz
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.