datumvergleich/datenbank
sakina
- php
0 Vinzenz Mai0 sakina
0 sakina
Hallo,
ich brauche eure Hilfe...
ich hab geschafft den aktuellen Datum mit der Datum im Datenbank zu vergleichen.
das Problem ist nur, dass beim vergleich etwas schief läuft, das erkläre ich am besten mit einem beispiel:
Datensätze:
id reason datum
1 19 9 2007-05-20
2 19 11 2008-05-02
Problem:
die select abfrage nimmt den ersten datensatz und nicht den treffenden.
codeabschnitt:
$grund = mysql_result($result, 0, "grund");
// hier liegt das Problem, wieso der 1. Datensatz genommen wird, aber ich weiß nicht wie ich es lösen soll, damit der treffender Datensatz genommen wird
Code:
$von= date("Y-m-d", $date);//aktueller datum
$bis= '2008-05-28';
$reason = "SELECT * FROM stunden WHERE id = 19 and '$von' >= datum and '$dat' <= '$bis'";
$result= mysql_query($reason) or die(mysql_error());
$row= mysql_num_rows($result);
if($row != 0){
$grund = mysql_result($result, 0, "grund");
print "|\n\n". $grund;
}
-------------------------------------------------------------------------
vielen dank für eure Hilfe,
lg,
sakina
Hallo
Datensätze:
id reason datum
1 19 9 2007-05-20
2 19 11 2008-05-02
Beide Datensätze werden von Deiner Abfrage zurückgeliefert.
die select abfrage nimmt den ersten datensatz und nicht den treffenden.
Bei Deinem Code treffen beide zu.
codeabschnitt:
$grund = mysql_result($result, 0, "grund");
Nimm den ersten zurückgelieferten Datensatz. Da Du keine Sortierung angegeben hast, kann das Ergebnis in zufälliger Reihenfolge zurückgegeben werden.
// hier liegt das Problem, wieso der 1. Datensatz genommen wird, aber ich weiß nicht wie ich es lösen soll, damit der treffender Datensatz genommen wird
Code:
$von= date("Y-m-d", $date);//aktueller datum
$bis= '2008-05-28';$reason = "SELECT * FROM stunden WHERE id = 19 and '$von' >= datum and '$dat' <= '$bis'";
Bist Du Dir bei
'$dat' <= '$bis'
ganz sicher, dass Du das so haben willst?
$result= mysql_query($reason) or die(mysql_error());
$row= mysql_num_rows($result);if($row != 0){
Ah ja. Und was machst Du bei mehr als einem Datensatz, so wie hier.
$grund = mysql_result($result, 0, "grund");
Du nimmst den ersten.
print "|\n\n". $grund;
}
Du solltest Deine Logik überprüfen. Ich verstehe zum Beispiel Deine zusammengebaute SQL-Anweisung nicht.
Freundliche Grüße
Vinzenz
Du solltest Deine Logik überprüfen. Ich verstehe zum Beispiel Deine zusammengebaute SQL-Anweisung nicht.
Das glaub ich dir :), dieser Code ist jetzt nur eine *rumspielerei*, nicht wirklich das, was es sein soll. Manche Sachen habe ich mit Absicht umgeändert, damit ich keinen langen Code da rein kopiere
trotzdem vielen dank,
lg,
Sakina
Hallo nochmals :)
ich bin schon selber auf mein Fehler gekommen :), trotzdem vielen dank,
lg,
sakina