[PHP] Multiplikation ergibt Kästchen
-
Ich habe eine Funktion geschrieben, die einen Wert aus einer Datenbank holt und diesen mit 1.40 multipliziert geschrieben. Bei der Multiplikation kommt allerdings nur Müll raus, es wird nur ein Kästchen angezeigt (""):
$zusatzobjektpreis = 1.4; . . . . . function getZusatzObjektePreis($DBObjects, $userid) { global $zusatzobjektpreis; $DBObjects->DBquery("SELECT ZUSATZOBJEKTE FROM admin WHERE ID='$userid'"); while($res = mysql_fetch_row($DBObjects->res)) { $zusatzobjekte = $res[0]; } $preis = $zusatzobjekte * $zusatzobjektpreis; return $preis; }
Wo liegt der Hase begraben?
-
Wird denn der Wert überhaupt korrekt aus der Datenbank ausgelesen?
-
was soll überhaupt die while Schleife bringen
-
Der User mit der ID $userid kann doch mehrere ZUSATZOBJEKTE in der DB abgelegt haben :p
-
Der Wert wird korrekt aus der Datenbank ausgelesen und lautete bei meiner letzten Abfrage 6. Das Problem liegt eindeutig bei der Multiplikation. Wenn ich 6 * 4 zurückgebe kommt das gleiche Problem. Die Variablen scheinen also keine Rolle zu spielen.
-
@Bloops: Es wird aber nur mit dem letzen Wert gerechnet, da in der while-Schleife $zusatzobjekte ja immer wieder überschrieben wird :p
@hackbert: Poste doch mal den Code, wie du die Funktion aufrufst bzw. deren Rückgabewert ausgibst - steht vielleicht im Quelltext das richtige Ergebnis und das Problem liegt wo ganz anderes
-
In $x wurde zuvor ein Template eingelesen und in $HTTP_SESSION_VARS["ID] befindet sich eine gültige Benutzer ID...
$x = ereg_replace("&ZUSKOSTEN&", getZusatzObjektePreis($DBObjects, $HTTP_SESSION_VARS["ID"]), $x);
-
Teste doch mal ein wenig rum!
Lass z.B. den Rückgabewert mal direkt ausgeben - du musst eben versuchen die Fehlerursache einzugrenzen.Ich könnte mit aber auch vorstellen, dass im Quelltext das richtige Ergebnis steht, aber durch irgendwelche Zeichen davor nicht richtig dargestellt wird
-
Hast du schon sichergestellt dass die beiden Variablen wirklich den richtigen Datentyp haben, also zwei ints oder floats?
ms
-
was hällst du davon es gleich in der sql-abfrage berechnen zu lassen
mit
SELECT ZUSATZOBJEKTE * 1.4 AS PREIS FROM admin WHERE ID='$userid'
mfg
VergissEs
-
@VergissEs: Danke, hat sehr gut geklappt.