phun-ky Skrevet 26. september 2004 Del Skrevet 26. september 2004 (endret) har laget et ganske enkelt script som legger til produkter i tabellen kurv, og det jeg vil at den skal gjøre er at den skal finne ut om produktet ligger der fra før, hvis den gjør det, så skal den plusse på antallet... men det har jeg ikke fått til, noen som vet? <? //database snakk include("db.php"); $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName); $query = mysql_query("SELECT MAX(kurvID) AS kurvID FROM kurv"); $row = mysql_fetch_array($query); $prodid = $_GET[pid]; $qty = $_GET[ant]; if((empty($prodid)) || (empty($qty))) { echo "ERROR"; } else { //hente ut fra rader $teller=$row["kurvID"]; //sjekker om at det er nyheter i databasen slik at teller kan fungere if ($teller != 0) { $teller++; } elseif ($teller == 0) { $teller= 1; } else { echo "error"; } $query =""; $query = mysql_query("SELECT * FROM kurv"); while($row = mysql_fetch_array($query)) { if($row[produktid] == $prodid) { $at = $row[antall]; $sum = ($at + $qty); $query2 = ""; $query2 = mysql_query("UPDATED kurv SET antall = $sum WHERE produktid = $prodid"); //WHERE sessionID = $session //$query = ""; } else { $query2 = ""; $query2 = mysql_query("INSERT INTO kurv VALUES ( '$teller','test','$prodid','$qty')"); } } echo "$prodid"; echo "<br>"; echo "$qty"; echo "<br>"; echo "$teller . du har lagt til en vare"; } mysql_close(); ?> Endret 27. september 2004 av phun-ky Lenke til kommentar
Torbjørn Skrevet 26. september 2004 Del Skrevet 26. september 2004 en helt anenn ting: det er vanlig å bruke auto_increment på id-felt så man slipper å manuelt øke den med 1 Lenke til kommentar
phun-ky Skrevet 26. september 2004 Forfatter Del Skrevet 26. september 2004 (endret) offtopic: veit. har ikke fått det til å funke, så jeg holder meg til teller inntil videre.. on topic: endret koden litt, men er fremdeles feil.. <? //database snakk include("db.php"); $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName); $query = mysql_query("SELECT MAX(kurvID) AS kurvID FROM kurv"); $row = mysql_fetch_array($query); $prodid = $_GET[pid]; $qty = $_GET[ant]; if((empty($prodid)) || (empty($qty))) { echo "ERROR"; } else { //hente ut fra rader $teller=$row["kurvID"]; //sjekker om at det er nyheter i databasen slik at teller kan fungere if ($teller != 0) { $teller++; } elseif ($teller == 0) { $teller= 1; } else { echo "error"; } $query =""; $query = mysql_query("SELECT * FROM kurv"); while($row = mysql_fetch_array($query)) { if($row[produktID] == $prodid) { $bryter = 0; } else { $bryter = 1; } } switch($bryter) { case 0: $at = ($row[antall]); $sum = ($at + $qty); $query2 = ""; $query2 = mysql_query("UPDATE kurv SET antall = $sum WHERE produktid = $prodid"); echo "update"; //WHERE sessionID = $session //$query = ""; break; case 1: $query2 = ""; $query2 = mysql_query("INSERT INTO kurv VALUES ( '$teller','test','$prodid','$qty')"); echo "insert"; break; } echo "insert"; echo "$prodid"; echo "<br>"; echo "$qty"; echo "<br>"; echo "$teller . du har lagt til en vare"; } mysql_close(); ?> dette er utskriften jeg får: updateinsert3 1 10 . du har lagt til en vare men den legger ikke til, og den oppdateres ikke.. Endret 26. september 2004 av phun-ky Lenke til kommentar
phun-ky Skrevet 26. september 2004 Forfatter Del Skrevet 26. september 2004 nå vil den telle og legge sammen antallet, men if'en slår til begge ganger fordi den går til den raden og sjekker om det var riktig, nei, da inserter den, og så går den til neste rad, som er feil og så inserter den på nytt. <? //database snakk include("db.php"); $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName); $query = mysql_query("SELECT MAX(kurvID) AS kurvID FROM kurv"); $row = mysql_fetch_array($query); $prodid = $_GET[pid]; $qty = $_GET[ant]; if((empty($prodid)) || (empty($qty))) { echo "ERROR"; } else { //hente ut fra rader $teller=$row["kurvID"]; //sjekker om at det er nyheter i databasen slik at teller kan fungere if ($teller != 0) { $teller++; } elseif ($teller == 0) { $teller= 1; } else { echo "error"; } $query =""; $row = ""; $query = mysql_query("SELECT * FROM kurv"); $query2 = ""; while($row = mysql_fetch_row($query)) { if($row[2] == ($prodid)) { $at = ($row[3]); $at += $qty; $query2 = mysql_query("UPDATE kurv SET antall = $at WHERE produktID = $prodid"); echo "update"; } else { $array = mysql_query("SELECT * FROM kurv WHERE produktID = $prodid"); $query2 = mysql_query("INSERT INTO kurv VALUES ( '$teller','test','$prodid','$qty')"); echo "insert"; } } echo "$prodid"; echo "<br>"; echo "$at"; echo "<br>"; echo "$teller . du har lagt til en vare"; } mysql_close(); ?> Lenke til kommentar
Torbjørn Skrevet 26. september 2004 Del Skrevet 26. september 2004 det blir vanskelig å begynne å rette på koen uten at du tar i bruk auto_increment først. angi kolonnenavnene i din INSERT query så bør du greit få det til. søk www.mysql.com etter syntaksen på insert hvis du ikke finner ut av det Lenke til kommentar
phun-ky Skrevet 27. september 2004 Forfatter Del Skrevet 27. september 2004 (endret) fant ut av det nå, etter en laaang stund med riving av hår: <? //database snakk include("db.php"); $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName); $query = mysql_query("SELECT MAX(kurvID) AS kurvID FROM kurv"); $row = mysql_fetch_array($query); $prodid = $_GET[pid]; $qty = $_GET[ant]; $act = $_GET[action]; if(empty($act)) { echo "ERROR"; } else { switch($act) { case 0: //hente ut fra rader $teller=$row["kurvID"]; //sjekker om at det er nyheter i databasen slik at teller kan fungere if ($teller != 0) { $teller++; } elseif ($teller == 0) { $teller= 1; } else { echo "error"; } $query =""; $row = ""; $query = mysql_query("SELECT * FROM kurv WHERE produktID = $prodid"); $numrows = mysql_num_rows($query); $row = mysql_fetch_row($query); if($numrows == 1) { $at = ($row[3]); $at += $qty; $query2 = mysql_query("UPDATE kurv SET antall = $at WHERE produktID = $prodid"); header("Location: [URL=http://www.umedia.no/?s=handlekurv");]http://www.umedia.no/?s=handlekurv");[/URL] } else { $query2 = mysql_query("INSERT INTO kurv VALUES ( '$teller','test','$prodid','$qty')"); header("Location: [URL=http://www.umedia.no/?s=handlekurv");]http://www.umedia.no/?s=handlekurv");[/URL] } break; case 1: echo "case 1"; break; case 2: echo "case 2"; break; } } mysql_close(); ?> EDIT: var feil fil Endret 27. september 2004 av phun-ky Lenke til kommentar
Torbjørn Skrevet 27. september 2004 Del Skrevet 27. september 2004 jeg ser ingen update eller insert i det hele tatt i den fila der men... Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå