webForumDet fria alternativet

Varukorg

6 svar · 180 visningar · startad av juventus1

juventus1Medlem sedan dec. 2000401 inlägg
#1

Hej!

Jag har gjort en varukorg som lagrar innehållet i en databas. Det jag nu funderar över är hur man ska kolla om en vara redan finns i korgen. Om den finns vill man ju öka antalet med 1 och inte lägga till en ny produkt. Finns det någon lösning där man inte behöver använda 2 sql-frågor?

------------------
mvh André

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Nej, det finns inget sådant statement.

Vilken dbms använder du? Det är bäst att lägga sådan funktionalitet i en stored procedure så att du minskar antalet anrop till databasservern.

------------------
essentitia preter non sans multiplicandum

juventus1Medlem sedan dec. 2000401 inlägg
#3

Jag anade nästan att det var ett bra jobb för en stored procedure. Tyvärr använder jag Access... :(

------------------
mvh André

[Redigerat av juventus1 den 12 nov 2001]

HermanMedlem sedan maj 2001427 inlägg
#4

Om du använder MySQL finns ett sådant trevligt kommando.

Se http://www.mysql.com/doc/R/E/REPLACE.html

hmm men det går nog inte att räkna upp kom jag på..

näe just det står t.o.m.

In other words, you can't access the values of the old row from a REPLACE statement. In some old MySQL version it looked like you could do this, but that was a bug that has been corrected.

[Redigerat av Herman den 12 nov 2001]

LarsGMedlem sedan dec. 200012 465 inlägg
#5

Det här problemet går inte att lösa med hjälp av replace.

------------------
essentitia preter non sans multiplicandum

LarsGMedlem sedan dec. 200012 465 inlägg
#6

Det eefektivaste är väl att göra något liknande detta

 'asp

sql = "update van set items = items + 1 where itemid = " & itemid & " and customerId = " & customerId
connect.execute sql,rows,128
if rows = 0 then
  sql = "insert into van ..."
  connect.execute sql,,128
end if

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 12 nov 2001]

juventus1Medlem sedan dec. 2000401 inlägg
#7

Ok, tack för tipset, ska prova det...

------------------
mvh André

Genererad på 358 ms · cache AV · v20260730165559-full.f96bc7eb