webForumDet fria alternativet

Modifiering av kod

5 svar · 592 visningar · startad av norra54

norra54Medlem sedan sep. 2003110 inlägg
#1

När kundkorgen är tom vill jag få meddelandet "Kundkorgen är tom" i st f idag då jag får "Det ligger 0 varor i kundkorgen". Går det lösa?

<?
$antal=0;
$kostnad=0;
if($_SESSION['cart']!=null)
foreach($_SESSION['cart'] as $cartItems){
$antal+=$cartItems["nr"];
$kostnad+=$cartItems["price"]*$cartItems["nr"];	
}												
?>
<? print 'Det ligger '; ?>
<? print $antal . ' varor '; ?>
<? print 'i kundkorgen'; ?>
nitro2k01Medlem sedan aug. 20039 342 inlägg
#2
<?PHP
$antal=0;
$kostnad=0;
if($_SESSION['cart']!=null)
foreach($_SESSION['cart'] as $cartItems){
$antal+=$cartItems["nr"];
$kostnad+=$cartItems["price"]*$cartItems["nr"];	
}												
?>
<?PHP
if ($antal>0){
    print "Det ligger $antal varor i kundkorgen"; 
}else{
    print 'Kundkorgen är tom';
}
?>

Notera att jag använder dubbelcitat " i första print-satsen, det gör att man kan lägga in en variabel inne i strängen som jag gjorde där.

norra54Medlem sedan sep. 2003110 inlägg
#3

Snyggt, och inte mer än nio minuter tog det :)
Ser lite tokigt ut när man handlat 1st vara och medd. bli "Det ligger 1 varor i kundkorgen".
Går det hålla isär singular och plural? 1st -> visar Vara, 2st och flera -> visar Varor, typ.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#4

Ok, nedan följer en sak till du kan lära dig, switch/case/default. inom en switch{...} kan du ha flera case för att välja mellan flera val. Inom en switch kan du ha flera val. Om inget av valen passar körs default ow detta existerar. Notera break, det betyder "hoppa till efter switch-satsen". Annars fortsätter koden att köra nästa rad, alltså efter nästa case/default! Det kan vara användbart ibland, men inte i detta fall så var noga med break.

<?PHP
$antal=0;
$kostnad=0;
if($_SESSION['cart']!=null)
foreach($_SESSION['cart'] as $cartItems){
$antal+=$cartItems["nr"];
$kostnad+=$cartItems["price"]*$cartItems["nr"];	
}												
?>
<?PHP
switch($antal){
case 0:
    print 'Kundkorgen är tom';
    break;
case 1:
    print "Det ligger en vara i kundkorgen"; 
    break;
default:
    print "Det ligger $antal varor i kundkorgen"; 
}
?>
streetrobbanMedlem sedan jan. 20011 140 inlägg
#5

Varför har du skrivit 'Kundkorgen är tom' och "Det ligger en vara i kundkorgen"? Alltså med ' och " på de olika ställena.

norra54Medlem sedan sep. 2003110 inlägg
#6

Nice, ser fint ut och fungerar utmärkt. wF funkar..

streetrobban: nitro2k01 skrev;

Notera att jag använder dubbelcitat " i första print-satsen, det gör att man kan lägga in en variabel inne i strängen som jag gjorde där.

128 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)