![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 289 Pomógł: 1 Dołączył: 2.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Posiadam tabelę "kategorie" o takiej strukturze: id | nazwa | ile | parent. Kategorie główne mają "parent"=0, natomiast podkategorie zawierają w "parent", id kategorii głównej. Nie mam pomysłu jak to zrobić, aby ograniczyć wszystko do jednej pętli. Obecnie wygląda to mniej więcej tak:
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 262 Pomógł: 26 Dołączył: 23.01.2009 Skąd: eZ Systems Ostrzeżenie: (0%) ![]() ![]() |
jest coś takiego jak rekurencja
poczytaj ten art: rekurencja - wielopoziomowe kategorie on powinien ciebie naprowadzić na rozwiązanie (IMG:style_emoticons/default/wink.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 781 Pomógł: 256 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował kefirek 25.06.2011, 10:10:05 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Rekurencyjnie zapytania? Najgorsze z możliwych wyjść.
Poguglajcie "mysql drzewka", znajdziecie kilka dużo lepszych i wydajniejszych sposobów. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 289 Pomógł: 1 Dołączył: 2.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam coś takiego:
Trochę dziwnie wygląda podwójne łączenie tej samej tabeli, ale cóż.. Troszkę teraz kombinuję z tym zapytaniem, aby zwracało mi nie tylko nazwę kategorii głównej, a potem listy podkategorii, ale również obok kategorii głównej pokazywało mi zliczoną ilość [ile] dla wszystkich podkategorii w danej kategorii. Ma ktoś może jakieś pomysły? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 262 Pomógł: 26 Dołączył: 23.01.2009 Skąd: eZ Systems Ostrzeżenie: (0%) ![]() ![]() |
To chyba tutaj pomoc zagnieżdżone SELECT z count w zapytaniu. Lecz nie wiem czy to nie obniży wydajności zapytania.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 781 Pomógł: 256 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 289 Pomógł: 1 Dołączył: 2.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Z pomocą ułożyłem potrzebne zapytanie mysql:
które wrzucone w pętle razem z warunkami wyświetla się mniej więcej tak: Nazwa kategorii (5) - podkategoria (3) - podkategoria (2) Zastanawia mnie tylko, czy takie zapytanie nie obniży wydajności. Trzeba będzie też chyba nałożyć indeksy na [parent] Ten post edytował adam882 26.06.2011, 13:58:07 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 18:11 |