EDIT: Das Problem hat sich gelöst. Der SQL-Code ist korrekt, die Fehlerursache muss bei meinen Tests entstanden sein.
Hallo allerseits,
Ich steh grad vor einem Problem weches ich mir bei bestem Willen nicht erklären kann. Aus einer Datenbank für Mitteilungen möchte ich die nächst ältere und nächst jüngere Nachricht innerhalb der aktuellen Kategorie auslesen. Das wollte ich wie folgt verwirklichen:
-- Nächst ältere:
SELECT `title`, `date` FROM `messages`
INNER JOIN `message_category`
ON `category_id` = [COLOR=#FF0000]$category[/COLOR]
WHERE `date` < [COLOR=#FF0000]$date[/COLOR]
ORDER BY `date` DESC
LIMIT 1
-- Nächst jüngere
SELECT `title`, `date` FROM `messages`
INNER JOIN `message_category`
ON `category_id` = [COLOR=#FF0000]$category[/COLOR]
WHERE `date` > [COLOR=#FF0000]$date[/COLOR]
ORDER BY `date` ASC
LIMIT 1
Alles anzeigen
$category und $date sind dabei jeweils die Kategorie und das Datum der aktuellen Mitteilung. Wenn ich diesen SQL-Code jetzt aber in phpMyAdmin teste, so liefert mir der Code für die nächst jüngere mit dem Testwert 2012-06-23 als Ergebnis einen älteren Eintrag, den von 2012-05-30.
Jetzt bin ich mir nicht sicher, was da falsch gehen könnte, nach meiner Überlegung sollte der Code so funktionieren. Deshalb die Frage an euch. Sieht jemand das Problem in meinem Code, oder hat da MySQL oder sogar phpMyAdmin irgend ein Sonderbenehmen dessen ich mir nicht bewusst bin?
Gurss und Danke im Voraus,
-Lukas