[MySQL] So richtig umgesetzt?

michael88

www.zehnsur.de
ID: 214576
L
4 Mai 2006
445
19
PHP:
$query1 = mysql_query("SELECT konto, kredit, konto_zins, kredit_zins, id FROM zds_user");
while($row=mysql_fetch_array($query1))
{$konto = round($row['konto'] + $row['konto'] * $row['konto_zins'] * $time / 8640000,2);
$kredit = round($row['kredit'] + $row['kredit'] * $row['kredit_zins'] * $time / 8640000,2);
if($kredit > 100000000) {$kredit = 100000000;}
mysql_query("UPDATE zds_user SET konto='".$konto."', kredit='".$kredit."' WHERE id='".$row['id']."'");
}


auf diese weise arbeitet bei mir im moment ein cronjob, auf der suche nach was besseren, entstand folgendes..., dochg leider fehlt mir im moment was die möglichkeit des testens, daher zunächst die frage hier, ob es soweit stimmen könnte)...

PHP:
<?php
mysql_query("UPDATE zds_user SET
konto=ROUND((konto+(konto*konto_zins*".$time."))/8640000,2),
IF(ROUND((kredit+(kredit*kredit_zins*".$time."))/8640000,2)>100000000, kredit=100000000,
kredit=ROUND((kredit+(kredit*kredit_zins*".$time."))/8640000,2))");
?>

mfg
topo
 
Zahlen sind keine Strings :!: Wie kommt ihr nur immer auf diese komische Idee ?! :wall:

P.S. Die Frage ist ernstgemeint, es interessiert mich wirklich.


edit:
Das bezieht sich natürlich auf den oberen Code, warum man überhaupt die String-Konvertierung von Zahlen einbaut.
 
ich kanns grade nicht testen... aber bin fest der überzeugung das haut so nicht hin. (syntaktisch) sql != php... die IFs sind falsch. du kannst nicht sagen WENN dann mach die anweisung ANSONSTEN die anweistung... sondern kannst nur sagen WENN nehm den wert ANSONSTE den wert.

sprich:

PHP:
kredit = IF(ROUND((kredit+(kredit*kredit_zins*".$time."))/8640000,2)>100000000, 100000000,
ROUND((kredit+(kredit*kredit_zins*".$time."))/8640000,2))

ob dein code jetzt logisch ist und das machst was du willst, keine ahnung.

btw: woher nimmst du time?

Zahlen sind keine Strings :!: Wie kommt ihr nur immer auf diese komische Idee ?! :wall:

P.S. Die Frage ist ernstgemeint, es interessiert mich wirklich.


edit:
Das bezieht sich natürlich auf den oberen Code, warum man überhaupt die String-Konvertierung von Zahlen einbaut.

:-? meinst du den query? dann kann ich dich beruhigen... sql kennt keine datentypen.
 
:-? meinst du den query? dann kann ich dich beruhigen... sql kennt keine datentypen.
Ich meinte das - hier in diesem Forum typische - Syndrom, Sachen wie UPDATE table SET integer_field='0'.
MySQL kennt vielleicht keine Datentypen, aber MySQL ist der festen Überzeugung, dass '12'>'111' ;)

Drum möchte ich mal überhaupt von jemanden wissen, wie man überhaupt auf die Idee kommt, so etwas zu machen. Bei INSERTs und UPDATEs mag das nicht weiter schlimm sein, aber ich würd ja so anfangen zu lachen, wenn sich der erste hier wundert, warum "MySQL zu blöd zum Vergleichen is" :LOL:
 
ehrlich, das hat mich schonmal gewundert....
der "neue" mysql code kommt net von mir..., bin ich viel zu dumm zu (s.oben :roll: )

ich werde es mir für dei zukunft merken...,

zu meinem neuem code, ich denke euch ist vielleicht klar was der machen soll, fällt euch was anderes besseres ein?
 
Das hier:
PHP:
if($kredit > 100000000) {$kredit = 100000000;}

ließe sich in MySQL so umsetzen:

Code:
 UPDATE [...] 
SET `kredit` = MIN([hier ausrechnen],100000000)  
WHERE  [...]

Ob Dir das jetzt allerdings hilft, vermag ich auch nicht zu sagen. ;)