PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : benötige Hilfe mit einem Cron



727
12.01.2013, 21:15
Ich habe für mein Bank addon einen cron der den Kontostand erfasst leider tut er dieses nicht und ich weiss leider nicht warum

hier mal der cron

<?


$m = db_query ("SELECT * FROM ".$db_prefix."_seitenkonfig");
$s = mysql_fetch_array($m);
$r = $s['messungen'];
$messungen = $r + 1;
db_query ("UPDATE ".$db_prefix."_seitenkonfig SET messungen='".$messungen."' WHERE admin_name = '0815'");

$uid = db_query ("SELECT * FROM ".$db_prefix."_kontodaten WHERE uid != 1");
$interface = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_seitenkonfig LIMIT 1"));


$kontostand=$uid['kontostand'];
$max_zinssumme = $interface['max_zinssumme'];
}
if($uid['kontostand']<$max_zinssumme);{
db_query ("UPDATE ".$db_prefix."_kontodaten SET zinskonto='".$max_zinssumme."' WHERE uid='".$uid."'");

$zinskonto2 = $kontostand + $userliste_1['zinskonto2'];
$zinskonto = $zinskonto2/$messungen;

db_query ("UPDATE ".$db_prefix."_kontodaten SET zinskonto='".$zinskonto."' WHERE uid='".$uid."'");
db_query ("UPDATE ".$db_prefix."_kontodaten SET zinskonto2='".$zinskonto2."' WHERE uid='".$uid."'");
db_query ("UPDATE ".$db_prefix."_seitenkonfig SET messungen ='".$messungen."'");
};
db_query ("UPDATE ".$db_prefix."_crons SET laufzeit = '".time()."' WHERE bezeichnung = 'Zinsstand'");

?>

eaxo
13.01.2013, 00:21
[...]

<?


$m = db_query ("SELECT * FROM ".$db_prefix."_seitenkonfig");
$s = mysql_fetch_array($m);
$r = $s['messungen'];
$messungen = $r + 1;
db_query ("UPDATE ".$db_prefix."_seitenkonfig SET messungen='".$messungen."' WHERE admin_name = '0815'");

$uid = db_query ("SELECT * FROM ".$db_prefix."_kontodaten WHERE uid != 1");
$interface = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_seitenkonfig LIMIT 1"));


$kontostand=$uid['kontostand'];
$max_zinssumme = $interface['max_zinssumme'];
}
if($uid['kontostand']<$max_zinssumme);{
db_query ("UPDATE ".$db_prefix."_kontodaten SET zinskonto='".$max_zinssumme."' WHERE uid='".$uid."'");

$zinskonto2 = $kontostand + $userliste_1['zinskonto2'];
$zinskonto = $zinskonto2/$messungen;

db_query ("UPDATE ".$db_prefix."_kontodaten SET zinskonto='".$zinskonto."' WHERE uid='".$uid."'");
db_query ("UPDATE ".$db_prefix."_kontodaten SET zinskonto2='".$zinskonto2."' WHERE uid='".$uid."'");
db_query ("UPDATE ".$db_prefix."_seitenkonfig SET messungen ='".$messungen."'");
};
db_query ("UPDATE ".$db_prefix."_crons SET laufzeit = '".time()."' WHERE bezeichnung = 'Zinsstand'");

?>

Bitte Codes im passenden Codeblock posten...

Da ist ne Menge im Argen.
- In Zeile 10 speicherst du ein MySQL-Result in der Variable $uid, benutzt diese in Zeile 14 aber bereits als Array. Da fehlt mysql_fetch_array oder mysql_fetch_assoc
- Du hast in Zeile 16 ein } ohne Sinn.
- Du hast die $userliste_1 nicht definiert, benutzt sie aber in Zeile 20.
- Du riskierst in Zeile 21 eine "DIVISION BY ZERO"

Außerdem verflucht dich dein Server weil
- du in Zeile 1 erstmal ALLES aus vms_seitenkonfig ausliest (* ist selten OK, LIMIT dagegen fast immer)
- du in Zeile 11 wieder ALLES aus vms_seitenkonfig ausliest, das ist überflüssig, hast du doch in Zeile 1 schon...
- du in Zeile 18 und 23 2x zinskonto in vms_kontodaten änderst ohne Notwendigkeit, einer kann weg...


Wenn das der Originalcron eines Addon-Programmierers ist: :der:
Wenn nicht: Halte dich an die Installationsanweisungen...

727
13.01.2013, 10:46
Ist ein Originalcron und alle Installanweisungen wurden befolgt.

eaxo
13.01.2013, 14:15
Ist ein Originalcron und alle Installanweisungen wurden befolgt.

Mal im Ernst:
Wenn schon der Cron eines Addons solche Syntax- und Logikfehler hat solltest du den Kauf rückgängig machen.

Dieser Cron kann nicht funktionieren. Es fehlt, selbst wenn man alle anderen Fehler berichtigt hat,
- noch immer die Definition von $userliste_1 und
- die while-Schleife um mit dem in Zeile 10 abgeholten MySQL-Result zu arbeiten (das } in Zeile 16 deutet darauf hin das es sowas mal gab).

So wird der Cron nicht (richtig) arbeiten und ohne das Original (ich weigere mich jetzt einfach mal anzunehmen das jemand solchen Müll vertreibt) kommen wir nicht weiter. Auch kann ich nicht sicher genug erkennen was wie passieren soll um das bisher Vorhandene schon mal in Form zu bringen...