Primerjava

Pozdravljeni!

Dokoncujem eno aplikacijo, v kateri uporabniki vpisujejo svoje delovne ure in narocila, aplikacija racuna vrednost narocil, stevilo delovnih ur etc. Sedaj bi pa rad se dodal, da bo aplikacija na podlagi izracunanih vrednosti, izracunala se nagrado, ki jo dobi uporabnik.

Nagrada deluje na ta nacin, da neko vrednost primerja z vrednostjo iz "nagrajevalne tabele" in potem na podlagi te tabele mnozi z stevilom narocil.

Sedaj pa me zanima, kako bi se tega lotil, potreboval bi samo zacetne smernice, ker zaenkrat se ne obvladam php-ja in mysql-a kot bi zelel, ampak napredujem pocasi :)

Upam da vse skupaj nisem prevec zakompliciral, za kakrsen koli nasvet, se pa ze vnaprej zahvaljujem.

7 odgovorov

Najprej si moraš pravilno zastaviti matematično formulo, potem pa to "prevedeš" v php kodo :) To je to zelo na hitro povedano.

Matematično formulo že imam, vendar nevem kako bi izvedel to primerajo izracunane vrednosti z vrednostjo v tabelo, da potegnem potem ven vrednost s katero potem dokoncno izračunam.

Dam še en primer, da me boste lazje razumeli.

19€ - 29,99€ | 1€
30€ - 49,99€ | 1,5€
50€ - 69,99 | 3€
70€ - 89,99 | 3,8€

Se pravi, eno vrednost, ki ze imam izracunano, moram primerjat z zgornjo tabelo in ce je ta izracunana vrednost npr. 35€, potem v neko spremeljivko dodam vrednost 1,5 in jo potem uporabim za koncni izracun.

Če imaš array tabelo, npr:

$nagrade = array(0 => array('min' => 19, 'max' => 29.99, 'nagrada' = 1), 1 => array('min' => 30, 'max' => 49.99, 'nagrada' => 1.5));

$pristej = 0;
$izracunanaVrednost = 35; // in ce je ta izracunana vrednost npr. 35€,
foreach($nagrade as $nagrada) {
   if ($izracunanaVrednost >= $nagrada['min'] && $izracunanaVrednost <= $nagrada['max']) {
    $izracunanaVrednost  += $nagrada['nagrada'];
 }
}

Koliko pa imaš teh nagrad ? Če imaš samo te 4 potem postavi if pa je ...

if ($vrednost > 19 && $vrednost < 29,99) { ....

Lahko pa nagrado deliš na vsak 1€ prometa, tak imaš za 1€ prometa 0,05 nagrade. Malo se spremeni vrednost nagrade, ampak je sistem lažji, če imaš mogoče nagrade do par tisoč € prometa. :D

Al pa kot je Roky napisal :D

Teh nagrad je vseskupaj 9.
Zaenkrat bom probal kot je napisal Roky, z polji.

Hvala obema.

Predlagam, da narediš tabelo in dodaš polja

OD, DO, NAGRADA

In potem narediš funkcijo, ki ima kot vhodni parameter vrednost oz promet ali karkoli že in ta vrednost naj bi bila med OD in DO. Tja kamor pade, tisto nagrado prišteje in vrne skupno vrednost ali pa samo nagrado... kar si pač ti želiš.

Taka tabela je potem zelo enostavna za urejanje in lahko dodajaš, urejaš ali brišeš posamezne postavke za nagrade iz tabele.

Sem naredil podobno kot je rekel Roky in mi je uspelo končno nagrado izpeljat.