Hallo an das Forum,
ich bin Einsteiger im Bereich PHP / MySql und stecke gerade in einer rein theoretisch einfachen Abfrage fest.
Und zwar möchte ich gerne aus einer Datenbank zeilenweise lesen, dabei jedoch nur die Zeilen herausnehmen, die der Bedingung `Endzeit` <= $heute entsprechen. Klingt einfach, funktioniert komischerweise auch teilweise.
Hier mal der Code:
abfrage0 = "SELECT `KreditID` , `KreditgeberID` , `KreditnehmerID` , `Endsumme` , `Endzeit` FROM `kredite` WHERE `Endzeit` <= '$heute'";
$inhalt0 = mysql_query($abfrage0) or die ('Abfragefehler');
while ($row = mysql_fetch_array($inhalt0))
{
[...]
}
Zur Erklärung: Es sollen schon beim Lesen (aus Performancegründen) nur die Zeilen genommen werden, die abgelaufen sind (es geht um Kredite, die jetzt zurückgezahlt werden müssen). Dabei stellt $heute genauso wie $Endzeit eine Zahl in Stunden dar, mit Kommastellen. $heute wird vor der Abfrage definiert und $Endzeit eben aus der Tabelle gelesen bzw für die Bedingung genutzt.
Das merkwürdige dabei ist folgendes:
Bei einem ungefähren Wert von $heute = 17844044.0447 und einem Wert $Endzeit = 16844044.0447 (lediglich die zweite Stelle verringert)funktioniert die Abfrage, die Zeile wird gelesen. Bei $Endzeit = 1.xxxx der gleiche Erfolg. Doch lösche ich einfach die ersten beiden Stellen zu $Endzeit = 844044.0447, so erscheint der Fehler, nämlich dass die Zeile nicht ausgelesen wird.
Mein Problem ist also, wieso die WHERE Abfrage da teilweise fehlerhaft ist, obwohl die Rechen-Prüf-Anweisung ja stimmt und bei kleineren Zahlen als $heute durchaus funktioniert, nur halt lange nicht bei allen.
Ich hoffe, man kann mir hier weiterhelfen, Google und Forum hab ich teils benutzt, aber ich habe nichts gefunden und auch keine Ahnung, nach was ich da genau suchen müsste, um ein solches kurioses Problem zu erkennen.
Gruß, FraXXor