Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [sql] Pobieranie produktów, kilka poziomów kategorii
propage
post
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

  1. <?php
  2. SELECT DISTINCT *
  3.  
  4. FROM products_2_categories p_2_c, products p left join promocja pro on (pro.promocja_produkt_id = p.product_id)
  5.  
  6. WHERE p_2_c.product_id = p.product_id AND (p_2_c.category_id  in (SELECT category_id FROM categories WHERE category_parent_id = $category_id UNION SELECT category_id FROM categories WHERE category_parent_id in (SELECT category_id FROM categories WHERE category_parent_id = $category_id)) or  p_2_c.category_id = $category_id )
  7. ?>


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 

  1. <?php
  2. ... WHERE p_2_c.product in ($array) 
  3. ?>
 

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. 
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pilsener
post
Post #2





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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 18:40