har för mig att du kan skriva nått i stil med:
UPDATE TABLE tabell SET varde = varde +2 WHERE namn LIKE 'namn'
eller nått...
5 svar · 266 visningar · startad av nybi
Ex; på db som jag har.
+_id_|_name_|_value_+
|_1__|_ett__|_2_____|
Om jag nu vill stoppa in: ex;
mysql_query("INSERT INTO table (name, value) VALUES ('ett', '3')");
så kommer jag att få
+_id_|_name_|_value_+
|_1__|_ett__|_2_____|
|_2__|_ett__|_3_____|
MEN jag skulle istället vilja ha resultatet:
+_id_|_name_|_value_+
|_1__|_ett__|_5_____|
Alltså att den kollar om 'name' redan finns, om den gör det så plussar den bara på 'value' till det 'name' som redan finns.
Hoppas att ni har förstått
Det blir väl kanske lite php kodande men jag la det här i mysql iaf.
har för mig att du kan skriva nått i stil med:
UPDATE TABLE tabell SET varde = varde +2 WHERE namn LIKE 'namn'
eller nått...
[r]ajda, fel tråd. denna post får mer än gärna plockas bort[/r]
[Redigerat av herq den 16 mar 2001]
Annars så kan du använda dig av REPLACE. Den uppdaterar om posten redan finns och lägger till om den inte finns.
Så här ungefär
$result = mysql_query("select 1 from tabell where name = '$name') or die(mysql_error('Issiken');
if ( mysql_numrows($result) > 0 ) {
mysql_query("update tabell set val = val + $val where name = '$name') or die('Dissiken');
} else {
mysql_query("insert into tabell values('$name',$val) or die ('Dunkan dej');
}
Replace har man väl inte så stor nytta av då man inte kan komma åt de värden som fanns där innan. Dvs man måste plocka upp dessa innan man gör replace.