Gå til innhold

ok et newbie spørsmål om elseif setninger


Anbefalte innlegg

Hei! , har en kode som ser sånn ut :

 

 

 

if ($m2_total < 10)

{

$m2_price_sqm = 850;

}

elseif ($m2_total >= 10 || $m2_total < 50)

{

$m2_price_sqm = 800;

}

elseif ($m2_total >= 50 || $m2_total < 200)

{

$m2_price_sqm = 750;

}

elseif ($m2_total >= 200 || $m2_total < 500)

{

$m2_price_sqm = 700;

}

elseif ($m2_total >= 500 || $m2_total < 1000)

{

$m2_price_sqm = 650;

}

elseif ($m2_total > 1000)

{

$m2_price_sqm = 600;

}

 

 

det som er feil er at når $m2_total overstiger 50, så blir ikke $m2_price_sqm = 750 eller mindre.. uansett hvor stor $m2_total er , noen som vet hva som er feilen her.. sorry er litt newbie i php :(

Lenke til kommentar
Videoannonse
Annonse
Jeg kan ikke PHP, men det er vel helt ulogisk å bruke eller (||) istedenfor og (&&)?

Correct me if I'm wrong.

doh!.. ja var jeg som misforstod.. mente jeg leste at | var eller og at || var og.. men da tok jeg feil, når jeg byttet ut || med && så fungerte det! tusen takk =)

Endret av halkal
Lenke til kommentar

if ($m2_total < 10)
{
   $m2_price_sqm = 850;
}
elseif ($m2_total >= 10 && $m2_total < 50)
{
   $m2_price_sqm = 800;
}
elseif ($m2_total >= 50 && $m2_total < 200)
{
   $m2_price_sqm = 750;
}
elseif ($m2_total >= 200 && $m2_total < 500)
{
   $m2_price_sqm = 700;
}
elseif ($m2_total >= 500 && $m2_total < 1000)
{
   $m2_price_sqm = 650;
}
elseif ($m2_total > 1000)
{
   $m2_price_sqm = 600;
}

 

Jeg tror dette skal funke fint

Lenke til kommentar
hva med å snu det hele på hodet og starte med

if($m2_total > 1000)

{

//noe skjer

}

elseif($m2_total <= 500)

{

//noe annet skjer

}

osv... Da slipper du unna bruken av $m2_total <= "en verdi" || $m2_total > "en annen verdi" som for meg så litt tungvidt ut

tenkte på det men hvis $m2_total er f.eks 200

 

 

så ville det ha stoppet opp ved elseif($m2_total <= 500)

 

for da ville kriteriet være oppfylt, da ville den ikke gått videre til

 

elseif($m2_total <= 200)

 

skulle jeg da mene, grunnen til at jeg brukte || , eller && som nå var riktig er at det gjaldt verdier fra 1000 til 500, 499 til 200 osv..

 

hvis det finnes noe måte å gjøre det uten å bruke && på, så ville jeg satt pris på det hehe.. skulle vært noe sånt som elseif($m2_total == 200<->500)

 

:p

Lenke til kommentar
nei, jeg tenkte litt feil.

Hvis du gjør følgende så stemmer det jeg sa:

if($m2_total > 1000)

{

//noe skjer

}

elseif($m2_total >= 500)

{

//noe annet skjer

}

ahh doh, ja det vil nok fungere lol.. det hadde jeg ikke tenkt på :-D

 

 

hvorfor gjøre det lett når man kan gjøre det komplisert ? :p

Lenke til kommentar

takk! da blei det en switch setning istedenfor

 

 

switch ($m2_total) {

case $m2_total > 1000:

$m2_price_sqm = 600;

break;

case $m2_total >= 500:

$m2_price_sqm = 650;

break;

case $m2_total >= 200:

$m2_price_sqm = 700;

break;

case $m2_total >= 50:

$m2_price_sqm = 750;

break;

case $m2_total >= 10:

$m2_price_sqm = 800;

break;

default:

$m2_price_sqm = 850;

}

 

 

er dette riktig? må være, det fungerte ihvertfall lol :).

 

hvis noen har noen flere forslag på hvordan det kan gjøres bedre, med kortere kode osv så kom med det =)

Lenke til kommentar
tja...har et forslag på 13 linjer istedet for 19 linjer da... :)

 

$array = array(
'0' => '850',
'10' => '800',
'50' => '750',
'200' => '700',
'500' => '650',
'1001' => '600'
);
foreach($array as $m2_stk => $m2_price){
if($m2_total >= $m2_stk){
$m2_price_sqm = $m2_price;
}
}

bra need4sms :-D

 

 

begynner å bli bra dette nå =)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...