![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 30.11.2009 Ostrzeżenie: (0%)
|
Ja wiem że to będzie bardzo łatwa odpowiedź ale mam problem ze zrozumieniem foreach. W bazie mam kategorie produktów o strukturze
Listuje sobie to tak:
Chciałbym wykorzystując to jedno zapytanie zabronić usuwania kategorii jeśli posiada subkategorię. Wiem że trzeba będzie napisać drugie foreach żeby sprawdzało czy dla danego $katalog->id istnieje subkategoria z $katalog->id_parent. Ten post edytował moczymorda 23.01.2011, 20:00:42 |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%)
|
Są dwa wyjścia. Pierwsze - dodajesz na stałe w bazie pole które trzyma liczbę potomków danego węzła (np. desc_count). Musisz je aktualizować przy każdym usunięciu/dodaniu węzła potomnego. W drugim rozwiązaniu generujesz sobie to pole w czasie zapytania SQL np.
W obu dostajesz w każdym wierszu liczbę potomków (pierwszego poziomu). Jeśli liczba jest większa niż 0 to blokujesz usunięcie. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 30.11.2009 Ostrzeżenie: (0%)
|
Drugi sposób nie zamuli jak będzie 1000 kategorii i 100000 podkategorii?
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%)
|
Musiałbyś sprawdzić. Na moim malutkim zbiorze (50 rek) różnice pomiędzy zwykłym selektem a zagnieżdżonym są pomijalne. Przy większych lepiej trzymaj to pole statycznie.
|
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 09:21 |