Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Hierarchiczne wyświetlanie danych.
Forum PHP.pl > Forum > PHP
Grzesiek23
Witam!

Mam taką zagwozdkę, która z metod wyświetlania danych (wg hierarchii) jest lepsza.
Najprostsza to definiowanie elementu nadrzędnego (ParentID). Ale spotkałem się też z drzewkiem/zagnieżdżeniem (left/right tree).

Czy jedynym plusem przemawiającym za skorzystaniem z metody nr 2 jest to, że mogę wyświetlić więcej niż jeden poziom podrzędnych rekordów dla danego poziomu poprzez tylko jedno zapytanie?
Bo w pierwszym przypadku, jeśli chciałbym wyświetlić do 3 poziomów, to muszę oczywiście wykonać dwa zapytania.

I tak na marginesie - może ktoś podrzuci jakiś ciekawym tutkiem na temat drugiej metody. Google'owałem trochę, ale tak od A do Z przykładu nie znalazłem.
everth
Tutaj - dział Graphs and Hierarchies -> Trees... etc.
Grzesiek23
Dzięki wielkie.

A czy różnica między tymi rozwiązaniami to ta jedyna, którą wymieniłem powyżej?

Czy coś jeszcze przemawia za "drzewkiem"?

Mam takie pytanie. Mam pobraną tablicę (id, name, parent_id). Jak teraz mogę sprytnie (bez wykonywania kolejnych zapytań) wyświetlić zagnieżdżone pozycje, tj.:
--- kategoria 1
------ kategoria 2
---------- kategoria 3
------ kategoria 4
---------- kategoria 5
---------- kategoria 6

Mógłby mi ktoś pomóc? Raczkuję dopiero smile.gif
Crozin
Po pierwsze, żadna z metod nie jest lepsza - może co najwyżej w pewnych przypadkach być lepsza.
Po drugie, pytasz o najbardziej podstawowe zagadnienia, które były już poruszane i są dostępne w Google'u.
Po trzecie, pamiętaj, że zawsze możesz łączyć metody by móc korzystać z jeden w jeden sytuacji i drugiej w innej sytuacji.
Grzesiek23
W sumie racja :-)
Przeszukalem trochę i mam jeszcze jedno pytanie.

Poprawcie mnie, jeśli się mylę - idea drzewka sprawdza się tylko wtedy, gdy mamy jeden element ROOT?
Crozin
Niekoniecznie. Większość (jak nie wszystkie) z popularnych algorytmów na przechowywanie struktur drzewiastych obsługują wiele korzeni - "rootów".
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.