hallo!
ich möchte gerne folgenden sql-datei per php-datei aufrufen:
UPDATE ws_spieler SET w_staerke=w_staerke-10 WHERE w_staerke>90;
UPDATE ws_spieler SET w_staerke=w_staerke-8 WHERE w_staerke BETWEEN 80 AND 90;
UPDATE ws_spieler SET w_staerke=w_staerke-6 WHERE w_staerke BETWEEN 70 AND 79;
UPDATE ws_spieler SET w_staerke=w_staerke-4 WHERE w_staerke BETWEEN 60 AND 69;
UPDATE ws_spieler SET w_staerke=w_staerke-2 WHERE w_staerke BETWEEN 50 AND 59;
UPDATE ws_spieler SET w_staerke=w_staerke+2 WHERE w_staerke BETWEEN 35 AND 45;
UPDATE ws_spieler SET w_staerke=w_staerke+4 WHERE w_staerke BETWEEN 25 AND 34;
UPDATE ws_spieler SET w_staerke=w_staerke+6 WHERE w_staerke BETWEEN 15 AND 24;
UPDATE ws_spieler SET w_staerke=w_staerke+8 WHERE w_staerke BETWEEN 5 AND 14;
UPDATE ws_spieler SET w_staerke=w_staerke+10 WHERE w_staerke<5;
wenn ich den code direkt in phpmyadmin eingebe, funktioniert das nicht so wie gewünscht, da ws_spieler mit stärke 95 zb -10 bekommt, dann nochmals bei 85 -8 abgezogen bekommt, bei 77 -6 abgezogen bekommt und dann bei 71 endet. Soll aber nur von 95 auf 85 runtergehen und das geht glaub ich nur wenn man den befehl per SQL-Datei aufruft…
kann mir den code in php-form umschreiben? wär echt nett…
falsches RDBMS. hier geht es um PostgreSQL, nicht um MySQL
falsches SQL:
test=# select * from spieler;
id | staerke
----+---------
1 | 90
2 | 80
3 | 70
4 | 60
(4 Zeilen)
Zeit: 0,155 ms
test=*# update spieler set staerke = staerke + case when staerke > 90 then 9 when staerke between 80 and 90 then 8 when staerke between 70 and 80 then 7 when staerke between 60 and 70 then 6 end ;
UPDATE 4
Zeit: 0,320 ms
test=*# select * from spieler;
id | staerke
----+---------
1 | 98
2 | 88
3 | 77
4 | 66
(4 Zeilen)
Du darfst halt nicht viele einzelne SQL’s machen, die dann nacheinander ablaufen, sondern nur eines.
Jein. Davon abgesehen, daß Du hier falsch bist: es geht nicht darum, das alles in einer Zeile einzugeben, sondern darum, dies in einem Befehl zu machen.