Seite 1 von 1

SQL Ausführung

Verfasst: 28.05.2005, 18:08
von jeep42
Hallo,

ich möchte in der Anfrage und Ausführung des query eine zusätzliche Optionen einbauen...

Wenn die tatsächliche Anzahl von $mypunkte grösser wie 3000 Punkte ist sollen die Punkte wieder auf 0 gesetzt werden...

Die unten angebene SQL Ausführung summiert nur die Punkte.

hmm wie ändere ich den Code so das bei 3000 Punkte die Punkte auf 0 gesetzt werden?

// punktevergeben

// Punkte schreiben
$mypunkte=$mypunkte+8;
$mygesamtpunkte=$mygesamtpunkte+8;
$query = "UPDATE Userdaten SET punkte='$mypunkte',gesamtpunkte='$mygesamtpunkte' WHERE anznummer='$anznummer' ";
mysql_db_query($dbname,$query,$conn) or die (mysql_error());

Header('Location: ../members/'.$from.'.php?'.SID.'&showid='.$showid.'&id='.$anznummer.'&language=DE&ordner='.$lastfolder);
exit();

Verfasst:
von

SQL Ausführung

Verfasst: 28.05.2005, 20:17
von pebosi
mach einfach noch eine weitere anweisung unter die andere:

"UPDATE Userdaten SET punkte=0 WHERE punkt >= 3000";

oder welche punkte meintest du?

SQL Ausführung

Verfasst: 29.05.2005, 00:54
von auftragslinker
wie wärs mit
if ($mypunkte >= 3000) { $mypunkte = 0; }
vor der sql abfrage? verstehe dein problem auch nicht so recht...

Re: SQL Ausführung

Verfasst: 29.05.2005, 09:46
von jeep42
pebosi hat geschrieben:mach einfach noch eine weitere anweisung unter die andere:

"UPDATE Userdaten SET punkte=0 WHERE punkt >= 3000";

oder welche punkte meintest du?
Hallo vielen Dank

Das war die richtige Anbtwort:
$query ="UPDATE Userdaten SET punkte=0 WHERE punkt >= 3000";
mysql_db_query($dbname,$query,$conn) or die (mysql_error());

Funzt perfekt ;-)

SQL Ausführung

Verfasst: 29.05.2005, 09:49
von pebosi
ok alles klar :)

SQL Ausführung

Verfasst: 31.05.2005, 11:04
von axelm
mach einfach noch eine weitere anweisung unter die andere:
"UPDATE Userdaten SET punkte=0 WHERE punkt >= 3000";

Das führt doch dazu, dass dieses Statment bei JEDEM Eintrag durchgeführt wird (egal was der aktuelle User für Punkte hat).
Wie wir alle wissen sind Statments auf der DB teuer. Spätestens wenn dein Spiel richtig einschlägt könnte die DB in die Knie gehen.

Ich würde dem eine If abfrage im PHP Code vorziehen.

SQL Ausführung

Verfasst: 01.06.2005, 13:03
von Airport1
Darf man es wieder vereinfachen? ;)
Kannst aus beiden Querys eines machen, das geht mit Einbau eines

IF (Bedingung, mach dies wenn wahr, mach dies wenn falsch)

ins Query ... Docu dazu bei mysql.com - Suchfunktion.
Hier kann man sich aber dann vortrefflich streiten was wartungsfreundlicherer Code ist, ob zwei Zeilen oder eine - bekomme schon Gewissensbisse ;)

Nach erster Ueberlegung wohl doch lieber die zwei Zeilen, ausser es geht um Performanz (z.B. weil Counter-Anbieter..)