>Hvor skal min data stå?
dem henter du fra databasen via en function når du udskriver din kurv
kald kunne være
$item = vare_Read($conn, $vare_id);
her vil $item så indeholde oplysninger som: varenavn, varepris, varebeskrivelse osv.
on du så lader din function retunere et array eller et object, det er en smags sag (foretrækker object)
hvis vi udbygger det tidligere eks
<?php
session_start();
function vare_Read($conn, $id){
// $sql = "SELECT * FROM vare WHERE id = ". $id;
// skal normalt ikke være en switch, men hentes via sql
$ar=array();
switch($id){
case 1: $ar=array("id"=>1, "pris"=>12.50, "name"=>"sofa0", "beskrivelse"=>"brun læder sofa0"); break;
case 2: $ar=array("id"=>1, "pris"=>12.50, "name"=>"sofa1", "beskrivelse"=>"brun læder sofa1");break;
case 4: $ar=array("id"=>1, "pris"=>12.50, "name"=>"sofa2", "beskrivelse"=>"brun læder sofa2");break;
case 7: $ar=array("id"=>1, "pris"=>12.50, "name"=>"sofa3", "beskrivelse"=>"brun læder sofa3");break;
default: $ar=array("id"=>"", "pris"=>0, "name"=>"", "beskrivelse"=>"");break;
}
return (object) $ar;
}
$conn = NULL; // mysql eller PDO connection
$id=2;
$antal =4;
$SESSION['kurv']=array(
"4"=>array("id"=>4, "antal"=>2),
"2"=>array("id"=>2, "antal"=>2),
"1"=>array("id"=>1, "antal"=>2),
"7"=>array("id"=>7, "antal"=>2)
);
echo "<pre>";
print_r($SESSION['kurv']);
echo "</pre>";
// læg til antal, der skal sikres mod at $antal bliver negativ, eller ihvetfald $SESSION['kurv'][$id]['antal'] bliver negativ
$SESSION['kurv'][$id]['antal']+=$antal;
$pris_total=0;
$antal_vare =0;
foreach($SESSION['kurv'] as $varer => $vare){
$item = vare_Read($conn, $vare['id']);echo "<br>";
echo "varenavn = ". $item->name ; echo "<br>";
echo "beskrivelse = ". $item->beskrivelse; echo "<br>";
echo "pris pr stk = ".$item->pris; echo "<br>";
echo "antal = ".$vare['antal']; echo "<br>";
$varepris = $item->pris * $vare['antal'];
echo "varepris = ".$varepris;echo "<br>";
$pris_total += $varepris;
$antal_vare += $vare['antal'];
}
echo "<br>";
echo "<br>";
echo "total pris = ".$pris_total; echo "<br>";
echo "total antal vare = ".$antal_vare;
// komtrol
echo "<pre>";
print_r($SESSION['kurv']);
echo "</pre>";
unset($SESSION['kurv'][$id]);
// komtrol
echo "<pre>";
print_r($SESSION['kurv']);
echo "</pre>";
// tilføje en vare til kurven
$SESSION['kurv'][42]=array("id"=>42, "antal"=>5);
// komtrol
echo "<pre>";
print_r($SESSION['kurv']);
echo "</pre>";
?>