IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Najít cenu v databázi podle select filtru

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
landsman
Člen
Avatar
landsman:18.5.2013 17:31

Zdravím,

řeším jak napsat následující věc:
Jde o e-shop nábytku, kde každá položka může mít cca 30 cen podle různých kriterií. Tyto možnosti si zákazník vybere na detailu zboží v selectech, checkboxech. To je ok, ale přemýšlím nad zpracováním v PHP.

Budou tam 4 základní volby, dle kterých se zúží výběr pouze na některé sloupce.
Vynesl jsem si sloupce dle těch cen do polí dle voleb. Jak všechna pole projít, dle jednotlivých závislostí a zúžit tak výběr na požadovanou cenu?

Jdu na to vůbec dobře?
Vize je taková, že to bude jakoby krokový formulář, který se zpracuje na pozadí vždy po každém select výběru ajaxem a zákazník dle jednotlivých výběrů bude vidět změnu ceny ihned.

//vsechny sloupce ktere ovlivni JEDNOLUZKO
$jednoluzko =  array('var2', 'var3', 'var4', 'var5', 'var6', 'var7', 'var8', 'var9');

//vsechny sloupce ktere ovlivni DVOJLUZKO
$dvojluzko =  array('var14', 'var15', 'var16', 'var17', 'var18', 'var19', 'var20', 'var21');

//vsechny sloupce ktere ovlivni MATERIAL
$buk =  array('var2', 'var6', 'var14', 'var18');
$dub =  array('var3', 'var7', 'var15', 'var19');
$javor =array('var4', 'var8', 'var16', 'var20');
$smrk = array('var5', 'var9', 'var17', 'var21');

//vsechny sloupce, ktere ovlivni CELO
$celo_ano = array('var2', 'var3', 'var4', 'var5', 'var14', 'var15', 'var16', 'var17');
$celo_ne = array('var6', 'var7', 'var8', 'var9', 'var18', 'var19', 'var20', 'var21');
Editováno 18.5.2013 17:33
 
Odpovědět
18.5.2013 17:31
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na landsman
David Hartinger:18.5.2013 18:02

A ta cena nemá nějakou pravidelnost, opravdu musíš mít pro každou položku cenu? Např. nedá se říct, že javor je o x procent dražší než smrk?

Co děláš v tom PHP jsem nepochopil, ptáš se snad databáze, ne?

Řešil bych to tak, že bych si do db uložil každý produkt v každé variantě (každá varianta = samostatný řádek). Pak jednoduše vyberu ty varianty co mají dané parametry a cenu. Nevím, co je tu k vymýšlení.

Nahoru Odpovědět
18.5.2013 18:02
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na landsman
Kit:18.5.2013 18:15

Také jsem moc nepochopil, na co máš tolik sloupců. Každou cenu přece zapíšeš do jednoho řádku ceníku.

Nahoru Odpovědět
18.5.2013 18:15
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:18.5.2013 18:20

Nevím jestli na to půjde napasovat dekorátor. Možná by to stálo za zvážení, ale zadavateli by se to asi nelíbilo. Potřebuje, aby měl zákazník v cenách chaos.

Nahoru Odpovědět
18.5.2013 18:20
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
landsman
Člen
Avatar
Odpovídá na Kit
landsman:18.5.2013 19:08

Není pravda, chci aby měl zákazník naopak přehled co jaká volba udělá s cenou.

 
Nahoru Odpovědět
18.5.2013 19:08
Avatar
Kit
Tvůrce
Avatar
Odpovídá na landsman
Kit:18.5.2013 19:21

V tom případě můžeš ten dekorátor použít, výrazné se ti zmenší počet sloupců. Budeš mít jen základní cenu a k tomu přirážky a slevy.

Samozřejmě sloupce ceníku budou v DB jako řádky.

Nahoru Odpovědět
18.5.2013 19:21
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
landsman
Člen
Avatar
landsman:18.5.2013 19:58

Ne, potřebuji dávat do databáze pevné ceny, to je ten problém.
Nějaké procenta, nebo příplatky nejdou. Pracuje se daným ceníkem.

 
Nahoru Odpovědět
18.5.2013 19:58
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na landsman
David Hartinger:18.5.2013 20:31

To je jedno, stejně to budou řádky v DB.

Nahoru Odpovědět
18.5.2013 20:31
New kid back on the block with a R.I.P
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.