Mysql&PHP Mehrere Updates verschiedener Zeilen

Shamane

DB-Crasher
ID: 86026
L
24 Juli 2006
909
50
Hallo,
ich hatte schon in Google wie blöd gesucht aber konnte leider nichts aussagekräftiges finden.

Datenbank:
id|views|klicks
1|20|11
2|1|0

Mein Vorhaben
Ich möchte gern in einem mysql_query("UPDATE ...") alle (sagen wir) 5 Datensätze geändert haben ohne das für jeden Datensatz eine Anweisung erstellen muss.

Normal wäre:
PHP:
dbquery("UPDATE `wd_partnerlinks` SET `views` = views +1 WHERE `id` = '".$wmsdb_data['id']."' LIMIT 1");
Hat jemand eine Idee mit vorschlag wie man das lösen könnte?
 
Zuletzt bearbeitet von einem Moderator:
Code:
[FONT=Courier New]... [B][COLOR=#9932cc]WHERE[/COLOR][/B] id [B][COLOR=#9932cc]IN[/COLOR][/B] (1, 2, 3, 42, 4711)[/FONT]
edit:
Tipp: Es gibt seit neuesten den Table-Tag fürs Forum ;)
 
PHP:
dbquery("UPDATE `wd_partnerlinks` SET `views` = views +1 WHERE `id` IN(1, 2, 3)");

meinst du sowas ?

edit: argh, da war jemand schneller
 
Thanks...

id IN (0,1,2,3) hat funktioniert...

nur `id` IN sollte man unterlassen ^^ weil durch die sonderzeichen tut das ganze nicht mehr ^^

Nochmals Danke


Nun noch etwas..
Kann ich auch in einem Insert befehl auch noch ein Update befehl intigrieren?

PHP:
dbquery("INSERT INTO `{.DBPREFIX.}besuchercounter` (`ip`, `time`, `views`, `hits`) VALUES ('".$_SERVER['REMOTE_ADDR']."','".time()."', '1', '1')");
Das update, wenn ich es neu schreiben müsste (neue anfrage)
PHP:
dbquery("UPDATE `{.DBPREFIX.}besuchercounter` SET `views` = views +1 WHERE id = 1");
 
Zuletzt bearbeitet:
Wenn das Feld "id" bei dir Primärschlüssel ist, läuft es wie folgt:
PHP:
INSERT INTO foo (`bar`, `views`) VALUES ('foobar', 1) ON DUPLICATE KEY UPDATE views=views+1
 
Zuletzt bearbeitet:
gesucht ist beides gleichzeitig, und das funktioniert nicht, warum auch, man kann beim Insert ja gleich die Daten eintragen wie sie nach dem Update aussehen würden.
Okay, habe ihn falsch verstanden. Sorry allerseits. ;)
Btw. hast du meinen Tippfehler (KAY statt KEY) mitzitiert.
 
...man kann beim Insert ja gleich die Daten eintragen wie sie nach dem Update aussehen würden.

Nunja, dafür müsste ich jedoch den bereits bestehenden Eintrag Auslesen, Löschen und dann wieder einfügen mit den werten, was dann wohl zu einer noch unnötigeren Anfrage führen würde.

Aber okay, hab es mal so gelöst das er halt nen normales Update zaubert.


Aber ich muss nochmals Danke sagen, wegen der "id IN (0,1)" funktion.. war mir bisher nicht bekannt.

Hier kann dann gern geschlossen werden, wurde ja alles geklärt :)