Autor | Zpráva | ||
---|---|---|---|
tomas2245 Profil |
Zdravím, mám html formulár ktorý sa odosiela cez PHP.
Mám tam inputy pre meno, priezvisko atď. Tovary mám tiež riešené cez inputy. Moja otázka znie, dalo by sa spraviť že tie tovary sa cez nejaké príkazy sčítajú a v maily sa zobrazí (výsledná cena jedného druhu tovarov (PC) a druhého (notebooky) ? mám 2 druhy tovarov: napr. 1 : PC napr. 2 : Notebooky a ešte podkategórie: cena za kus, nad 100 kusov, nad 500 kusov, nad 1 000 kusov je dôležité aby ten systém vedel ak si niekto objedná do 90 kusov tak to bude brať cenu za kus... napríklad.. v PHP som začiatočník, budem rád za každé riešenie, vďaka :) |
||
lionel messi Profil |
#2 · Zasláno: 19. 3. 2016, 10:38:17
tomas2245:
„dalo by sa spraviť že tie tovary sa cez nejaké príkazy sčítajú a v maily sa zobrazí (výsledná cena jedného druhu tovarov (PC) a druhého (notebooky) ?“ Áno, samozrejme. Ukáž prosím HTML formulára (a aké zľavy majú byť pri veľkých objednávkach). :-) |
||
tomas2245 Profil |
lionel messi:
<li> <img src="obrazky/tovar1.png"></a><p>1. TOVAR <br><input type="text" style="text-align: center" name="1tovar" size="5" /> ks </li> tento kód si chcel vidieť? takto mam naskladaných dajme tomu 100 inputov na tovary.. ^ viem, určite by to bolo lepšie cez tú databázu ale v tom sa vôbec nevyznám, zatiaľ to nechám tak :) cena za kus PC: 0,22 || cena za kus NTB: 0,30 cena nad 100 PC: 0,18 || cena nad 100 NTB: 0,28 cena nad 500 PC: 0,17 || cena nad 500 NTB: 0,26 cena nad 1000 PC: 0,15 || cena nad 1000 NTB: 0,22 divné ceny na tie kategórie :D ale tak to je len príklad ;) |
||
Časová prodleva: 3 dny
|
|||
tomas2245 Profil |
#4 · Zasláno: 22. 3. 2016, 16:24:01
lionel messi:
prepáč že ťa otravujem, ale zabudol si namna či si nenašiel riešenie? |
||
lachim15 Profil |
Nevím, jak máš postavený script, udělal jsem ti tedy funkci a začlenění do scriptu nechám na tobě.
Jestli chápu dobře, chceš nějak vyřešit snížení ceny za kus při určitých počtech kusů v objednávce, při výpočtu můžeš zavolat funkci a ona ti vrátí novou cenu podle počtu kusů, podobnou když si ji upravíš můžeš použít i pro ntb. Funkce do které předáš počet kusů: <?php function cena($pocet_kusu) { if($pocet_kusu < 100) { $cena_kus = 0.22; } elseif(($pocet_kusu > 99) && ($pocet_kusu < 500)) { $cena_kus = 0.18; } elseif(($pocet_kusu > 499) && ($pocet_kusu < 1000)) { $cena_kus = 0.17; } elseif($pocet_kusu > 999) { $cena_kus = 0.15; } else { $cena_kus = 0.22; } return $cena_kus; } ?> Zavolání funkce například (záleží, jak tvůj script funguje): <?php cena($_POST['1tovar']); ?> Pokud budeš chtít otestovat script: echo cena(179); Snad jsem se nikde nepřepsal, nebo nenapsal něco špatně, píšu to ve spěchu v práci a nemám to kde vyzkoušet :) |
||
Lonanek Profil |
Neřešil bych to skriptem.
Podle zadání mohou nastat pro různé typy zboží různé hodnoty slev. To pak v praxi znamená, že tímto způsobem by se muselo napsat tolik funkcí, kolik bude rozdílných slev zboží. Spíše bych to řešil formou tabulky (id; zbozi; sleva_0; sleva_100; sleva_500; sleva_1000) a podle zboží a počtu kusů násobit cenu slevou z tabulky. Podmínky mi přijdou zbytečně složité. Pokud bude splněna $pocet_kusu < 100 je zbytečné testovat zda je navazující podmínka >99. To samé platí i při dalších hodnotách. Je použito else if{}, nikoliv elseif{}. |
||
lachim15 Profil |
Lonanek:
„Neřešil bych to skriptem.“ tomas2245 psal, že přes tabulky to řešit nechce. „Podle zadání mohou nastat pro různé typy zboží různé hodnoty slev“ Já vyčetl, že má jen slevy pro 2 druhy zboží - pc a noteboky. „Je použito else if{}, nikoliv elseif{}“ Ta mezera by tam neměla ovlivnit funkčnost ne? |
||
Lonanek Profil |
lachim15:
„tomas2245 psal, že přes tabulky to řešit nechce.“ Nakonec k tomu řešení stejně dospěje, protože určitě nezůstane jen u dvou tovarov. „Já vyčetl, že má jen slevy pro 2 druhy zboží - pc a noteboky.“ zatím jen dva... „Ta mezera by tam neměla ovlivnit funkčnost ne?“ to si nemyslím, php.net/manual/en/control-structures.elseif.php |
||
lachim15 Profil |
Dobré vědět, člověk se pořád učí :) Ten příklad mu opravím, ať to má tedy správně.
EDIT: Nechám na něm co si zvolí, je pravda, že s mysql je tohle jednodušší :) |
||
juriad Profil |
K rozdílu mezi
else if a elseif :
„In PHP, you can also write 'else if' (in two words) and the behavior would be identical to the one of 'elseif' (in a single word). The syntactic meaning is slightly different (if you're familiar with C, this is the same behavior) but the bottom line is that both would result in exactly the same behavior.“ # definice jednotkových cen pro produkt # na pořadí záleží!!! $pc = array(1000 => 0.15, 500 => 0.17, 100 => 0.18, 0 => 0.22); function getPrice($unitPrices, $cnt) { # procházíme pole, dokud nenajdeme hodnotu, která je menší nebo rovná foreach ($unitPrices as $n => $unitPrice) { if ($cnt >= $n) { return $cnt * $unitPrice; } } # kdyby náhodou někdo zadal záporný počet return 0; } echo getPrice($pc, 127); |
||
Keeehi Profil |
#11 · Zasláno: 22. 3. 2016, 19:52:39
juriad:
„K rozdílu mezi else if a elseif “
Přesně tak. Je to popsané i v dokumentaci Note that elseif and else if will only be considered exactly the same when using curly brackets as in the above example. |
||
tomas2245 Profil |
#12 · Zasláno: 22. 3. 2016, 23:01:14
Ďakujem za riešenia, pokúsim sa to nejako dať dokopy, aj keď si nemyslím že sa mi to podarí, nerozumiem sa do toho moc :D
|
||
Časová prodleva: 9 let
|
0