• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem bei MySQL Abfrage

freakXHTML

Mitglied
Hallo zusammen,

auf meiner Startseite soll immer der Forenthread angezeigt werden, der die höchste ID hat. Bis jetzt hat das so funktioniert:

$sql = 'SELECT ID, Titel FROM blog WHERE ID=(SELECT MAX(ID) FROM blog)';

Das funktioniert auch super. Nun kann ich jedoch Blogs bzw. Threads löschen. Diese fliegen dabei nicht aus der Datenbank, sondern es wird in die Spalte "geloescht" eine 1 geschrieben anstatt einer 0. Es werden nur die Threads angezeigt, die eine 0 unter "geloescht" stehen haben. Wenn nun ein Thread gelöscht wurde, wird aber dieser immer noch auf der Startseite angezeigt. Also dachte ich, dass ich einfach meine Abfrage modifizere:

$sql = 'SELECT ID, Titel FROM blog WHERE ID=(SELECT MAX(ID) FROM blog) WHERE geloescht = 0';

Das funktioniert jedoch nicht, weil der Thread mit der höchsten ID nunmal nicht mehr eine 0 unter geloescht stehen hat. Deswegen wird gar nichts aus der Datenbank ausgelesen. Es müsste also jetzt der Thread ausgelesen werden, der die höchste ID hat unter den geloscht = 0.

Wie mache ich das? Ich hoffe, dass ihr mein Anliegen versteht :)

Vielen Dank
lg, freakXHTML
 
Du musst natürlich die Bedingung in die Abfrage einbauen, wo du die IDs ermittelst, nicht erst hinterher. Wobei,, so wie du es beschriebst, mir der subselect überflüssig erscheint.

Sowas in der Art müßte doch funktionieren:

Code:
SELECT ID, Titel FROM blog 
WHERE geloescht  = 0 ORDER BY id LIMIT 1

EDIT: Beim ORDER BY musst du evtl. noch ein DESC einbauen
 
Zurück
Oben