Vinzenz Mai: datumvergleich/datenbank

Beitrag lesen

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