![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 330 Pomógł: 0 Dołączył: 25.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jak najlepiej pobierać produkty,kiedy jest kilka stopni zagłebień kategorii
Przy 3 poziomach kategorii zapytanie wygląda tak
Jeszcze bardziej się to komplikuje przy 4 poziomowej strukturze kategorii, jak macie to u siebie rozwiązane. Wpadłem tez na pomysł aby funkcją rekurencyjną pobierać najpierw id wszystkich produktów z wszystkich pod kategori do tablicy, a potem
Ale chyba te rozwiązanie bedzie mniej wydajne niż te wyżej? Ponieważ przy tym rozwiązaniu wyżej nie używam wogóle php do zapytania. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 12 Dołączył: 9.10.2008 Skąd: Tricity.Rumia() Ostrzeżenie: (0%) ![]() ![]() |
lepiej by bylo jak bys napisal strukturę tabel a nie jakieś zapytanie ;-/
ja to rozwiązuje tak ze mam tabele: produkt ( należy do 1 kategori) ID / CatID Kategorie: ID / ParentID produkt.CatID to identyfikator kategorii a ParentID to identyfikator nadkategorii kategorie najwyższego poziomu mają ParentID = 0 ktory jest wyifowany. No i pobieramy: SELECT * FROM produkt WHERE CatID = $_GET['catid'] Wiecej problemów jest jeśli chcesz wyświetlić ścierzkę do produktu tzn np: kat_st1/kat_st2/kat_st3/produkt wtedy chyba najlepiej cachować ? |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Poza ID kategorii i id rodzica wart ododać pole "ścieżka" i "głębokość" - wtedy gdy chcesz wyświetlić listę produktów z kategorii np. 64 to lecisz lajkiem po ścieżce, tu masz więcej na ten temat:
http://blog.mwojcik.pl/2008/02/17/drzewa-k...-php-metoda-ip/ Zrobiłem bez problemu nieskończoną liczbę kategorii i podkategorii, dodawanie, usuwanie, wyświetlanie, edycja etc. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 274 Pomógł: 35 Dołączył: 18.07.2008 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Lub napisać funkcję rekurencyjną która jako jeden z parametrów może przyjmować rodzica
![]() -------------------- "Tylko dwie rzeczy są nieskończone: wszechświat oraz ludzka głupota,
choć nie jestem pewien co do tej pierwszej." Albert Einstein Wirtualny Rynek Predykcyjny |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 9.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam taki problem nie wiem jak wybrac wszystkie głowne kategorie które nie mają pod kategorii?
Składnia bazy jest klasyczna czyli jest: Kolumna ID Kolumna ParenID ID ParenID 1 0 2 0 3 1 4 4 5 0 W wyniku chciałbym otrzymać wiersz z ID 2 i 5 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 92 Pomógł: 3 Dołączył: 4.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(milocha) W wyniku chciałbym otrzymać wiersz z ID 2 i 5 nie dasz rady poniewaz masz 3 pozycje z ParenID=0 ![]() zeby je pobrac to wystarczy, jak to kolega wyzej napisal: Cytat(pinochet) w Twoim wypadku zamiast CatID wstaw ParenID |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Lub napisać funkcję rekurencyjną która jako jeden z parametrów może przyjmować rodzica Ta metoda zajeździ serwer. ![]() Poczytaj: http://artykuly.zyxist.com/czytaj.php/drzewa_w_php_i_mysql -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 02:43 |