sql-befehl per php-Datei

Hier kommen Posts zu anderen Datenbanken als PostgreSQL rein.
Antworten
w4sport.AT
Neuer Benutzer
Beiträge: 2
Registriert: Mi 6. Okt 2010, 19:38

sql-befehl per php-Datei

Beitrag von w4sport.AT » Mi 6. Okt 2010, 19:39

hallo!
ich möchte gerne folgenden sql-datei per php-datei aufrufen:

Code: Alles auswählen

 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..

akretschmer
Erfahrener Benutzer
Beiträge: 7513
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Beitrag von akretschmer » Mi 6. Okt 2010, 20:12

w4sport.AT hat geschrieben:hallo!
ich möchte gerne folgenden sql-datei per php-datei aufrufen:

Code: Alles auswählen

 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..


Jede Menge Fehler...

1. falsches RDBMS. hier geht es um PostgreSQL, nicht um MySQL
2. falsches SQL:

Code: Alles auswählen

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.

Andreas
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

w4sport.AT
Neuer Benutzer
Beiträge: 2
Registriert: Mi 6. Okt 2010, 19:38

Beitrag von w4sport.AT » Mi 6. Okt 2010, 23:19

achso, sorry das wusste ich nicht...

ok, also der befehl muss in einer zeile ausgeführt werden... kann mir jemand verraten wie ich das dann per mysql eingebe?

ads
Erfahrener Benutzer
Beiträge: 4148
Registriert: Mi 8. Feb 2006, 10:58
Wohnort: MD
Kontaktdaten:

Beitrag von ads » Do 7. Okt 2010, 00:29

Immer noch falsches Forum, hier geht es um PostgreSQL, nicht MySQL.

Den Befehl kann man auch in die MySQL Shell eintippen oder per PHP abschicken.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören Bild

Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

PostgreSQL Service & Support

akretschmer
Erfahrener Benutzer
Beiträge: 7513
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Beitrag von akretschmer » Do 7. Okt 2010, 08:26

w4sport.AT hat geschrieben:achso, sorry das wusste ich nicht...

ok, also der befehl muss in einer zeile ausgeführt werden... kann mir jemand verraten wie ich das dann per mysql eingebe?


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.

Andreas
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Antworten