![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie,
pisząc swój własny sklep internetowy natrafiłem na pewien problem, a mianowicie chodzi o strukturę bazy danych oraz skryptu, który pozwalałby na tworzenie dowolnych kombinacji cech dla każdego produktu. Załóżmy, że posiadamy produkt "x", który posiada np. 3 cechy lub parametry takie jak: rozmiar(S,M,L), kolor(czerwony, niebieski), rodzaj materiału(plastik, chrom, srebro). Daje nam to 3*2*3 = 18 kombinacji. Założeniem jest to aby każda kombinacja mogła mieć inną cenę, wagę itp. (tak jak w prestaShop). Wracając do pytania, jak to zrobić aby działało szybko i zajmowało mało miejsca w tabeli ? Ten post edytował darkking 22.09.2012, 13:14:45 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
product
product_id | product_opis 1 | Koszulka fields_category cat_id | cat_name 1 | Rozmiar 2 | Kolor fields field_id | cat_id | field_value 1 | 1 | X 2 | 1 | XXL 1 | 2 | Czerowny product_opis id | product_id | cat_id 1 | 1 | 1 2 | 1 | 2 Pobierasz produkt o id 1 JOIN'em podczepiasz kategorie do produktu, JOIN'em podczepiasz wartości do kategorii. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ok, dziękuję. A jak w php stworzyć wszystkie gotowe kombinacje atrybutów ?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Do tabeli product dodaj kolumnę cena_podstawowa czyli taka bez dodatków = 100%, do tabeli fields dodaj cena_cecha gdzie będziesz składował ceny dodatków(inny kolor, rozmiar). Po pobraniu danych dla każdej kategorii tworzysz pole radio, select lub checkbox (wedle uznania). Przy odbieraniu danych wysłanych formularzem zostaje czysta arytmetyka ;p
Ten post edytował CuteOne 23.09.2012, 10:27:54 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie chodziło mi o to (IMG:style_emoticons/default/smile.gif) Załóżmy, że mam multiselect z tymi atrybutami:
Kolor - Czerwony (selected) - Niebieski (selected) Rozmiar: - XL (selected) - L (selected) - S (selected) - M (selected) Jak teraz w php stworzyć te 8 kombinacji ? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Yyyyy serio nie wiem o co ci chodzi (IMG:style_emoticons/default/smile.gif) co wg Ciebie znaczy "stworzyć w PHP 8 kombinacji" ?
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Tzn. powiązać ze sobą elementy obu tych kategorii czyli:
Czerwony - XL Czerwony - L Czerwony - S Czerwony - M Niebieski - XL Niebieski - L itd. Z założenia tych kategorii może być bardzo dużo, więc trudność sprawia mi napisanie funkcji rekurencyjnej, która stworzyła by takie kombinacje. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 437 Pomógł: 42 Dołączył: 16.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Źródło: http://forum.php.pl/index.php?s=&showt...st&p=792551 inne rozwiązanie:
Źródło: http://forum.php.pl/index.php?s=&showt...st&p=110607 Jeszcze jedno rozwiązanie:
Źródło: http://www.forum.optymalizacja.com/topic/4...cy/#entry371212
Źródło: http://stackoverflow.com/questions/2516599...2516779#2516779 Ten post edytował sebekzosw 23.09.2012, 19:49:31 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 07:57 |