Det her burde virke, men der er minimum tre problemer med det.
1. Du har en tid på alle items i den samme order, ville tro tiden skulle have været på order
2. Det er muligt at bestille mere end dit lager, og muligvis sætte det lager til en negativ beholdning (afhænger af om datatype er signed eller unsigned.).
3. Dette er i princippet 2., men det er muligt for en kunde at bestille noget som en anden kunde lige har bestilt.
$ordre = array();
$total = 0;
$sql = mysql_query('SELECT * FROM brugerlogin WHERE id='$_SESSION['id']');
$row2 = mysql_fetch_assoc($sql);
foreach ($_SESSION['basket'] as $item=>$item_count) {
$sql2 = mysql_query("SELECT * FROM vare WHERE varenavn='$item'") or die(mysql_error());
$row = mysql_fetch_assoc($sql2);
$totalofoneitem = $row['pris']*$item_count;
$total += $totalofoneitem;
$time = time();
$ordre[]='(?,'.$row['varenummer'].','.$item_count.','.$time.','.$totalofoneitem.')';
mysql_query("UPDATE vare SET lbh=lbh-$item_count WHERE varenavn=$item");
}
mysql_query("INSERT INTO ordre (kundeid,afhentet,totalpris) VALUES ('$row2['id']','Nej',$total)") or die(mysql_error());
$id = mysql_insert_id();
mysql_query('INSERT INTO ordrene (ordrenummer, varenummer, antal, tid, prisalt) VALUES '.str_replace('?',$id , implode(',',$ordre))) or die(mysql_error());
Indlæg senest redigeret d. 16.09.2011 12:44 af Bruger #5620