02. august 2007 - 18:06Der er
17 kommentarer og 1 løsning
opdatere alle antal i en indkøbskurv
Nu går mit hoved snart i stykker hvis jeg skal tænke mere over det her uden lidt hjælp :|
Jeg vil lave en knap i min indkøbskurv der opdaterer antallet af alle varer i kurven hvordan kan jeg det?
Min query ser således ud: $result = mysql_query("select * from cart inner join shop_content on cart.itemId = shop_content.itemId where cart.cookieId = '" . GetCartId() . "' order by shop_content.beskrivelse asc")or die(mysql_error());
flere roser til jakob =) hvis andre vil se det endelige resultat af jakobs hjælp så se spørgsmål http://www.eksperten.dk/spm/790161 der endte med at handle om det samme =)
endelig foreach kode: foreach($_POST['qty'] AS $id => $count) { //Hvis antal er = 0 eller mindre, fjerner vi ITEM! if($count <= 0) { // Remove the item from the users cart RemoveItem($id); } else { mysql_query("update cart set qty = '".$count."' where mixId = '" . $id . "' LIMIT 1") or die(mysql_error()); } }
Jeg er lige stødt ind i et andet problem næsten magen til,.. =(
I cart´en har jeg nu tilføjet et "kommentar" felt til alle varerne,.. dertil følger et problem ligeledes det vi fik løst med koden ovenfor. dvs. jeg skal opdatere alle kommentarerne hver især.
Jeg tænkte om ikke jeg kunne gøre noget lignende så jeg forsøgte mig med følgende:
foreach($_POST['kommentar'] AS $id => $count) { mysql_query("update cart set kommentar = '" . $count . "' where mixId = '" . $id . "' LIMIT 1") or die(mysql_error()); }
men der får jeg følgende error: Warning: Invalid argument supplied for foreach() på linien med foreach,.. hvad kan det skyldes? er jeg helt galt i byen?
ellers tænkte jeg man kunne tilføje følgende linie til den endelige kode jeg skrev som det sidste i dette spørgsmål. mysql_query("update cart set kommentar = '" . $kommentar . "' where mixId = '" . $id . "' LIMIT 1") or die(mysql_error());
så det hele kom til at se ud som følgende: foreach($_POST['qty'] AS $id => $count) { //Hvis antal er = 0 eller mindre, fjerner vi ITEM! if($count <= 0) { // Remove the item from the users cart mysql_query("delete from cart where cookieId = '" . GetCartId() . "' and mixId = '" . $id . "' LIMIT 1") or die(mysql_error()); } else { mysql_query("update cart set qty = '".$count."' where mixId = '" . $id . "' LIMIT 1") or die(mysql_error()); mysql_query("update cart set kommentar = '" . $kommentar . "' where mixId = '" . $id . "' LIMIT 1") or die(mysql_error()); } }
men det virker stadig ikke,.. =(
Håber jeg kan logge dig til at hjælpe endnu engang...
ahh ok,.. ja det ændrer jo lidt på det,.. men som det er nu hvor jeg har nedenstående script kommer der bare til at stå samme antal som det der står i qty feltet, hvilket vel giver mening når det er: update cart set kommentar = '" . $count . "'
foreach($_POST['kommentar'] AS $id => $count) { mysql_query("update cart set kommentar = '" . $count . "' where mixId = '" . $id . "' LIMIT 1") or die(mysql_error()); }
Men har prøvet med $kommentar og det virker selvfølgelig heller ikke,.. =)
Så nu er jeg på bar bund igen =(
Jeg opretter gerne et nyt spørgsmål med points til dig hvis du ønsker =) men vi kan jo lige så godt lige forsætte her mens vi har scripts :D
men får bare "Array" i db´en =( jeg har sat print_r lige inden den updater db´en.
function UpdateItem($itemId, $qty, $surfacenavn, $mixId, $kommentar, $enhed) { // Updates the quantity of an item in the users cart. // If the quantity is zero, then RemoveItem will be // called instead
global $dbServer, $dbUser, $dbPass, $dbName;
// Get a connection to the database $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);
if($qty == 0) { // Remove the item from the users cart RemoveItem($mixId); } else { echo '<pre>'; print_r($_POST); echo '</pre>'; mysql_query("update cart set qty = $qty where cookieId = '" . GetCartId() . "' and mixId = '$mixId'") or die(mysql_error()); mysql_query("update cart set kommentar = '$kommentar' where cookieId = '" . GetCartId() . "' and mixId = '$mixId'") or die(mysql_error()); } }
foreach($_POST['kommentar'] AS $id => $kommentar) { mysql_query("update cart set kommentar = '" . $kommentar . "' where mixId = '" . $id . "' LIMIT 1") or die(mysql_error()); }
der skulle jo bare stå kommentar i stedet for count: foreach($_POST['kommentar'] AS $id => $kommentar)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.