problem mit mysql limit

live4music

Mitglied
hallo, ich habe folgendes Problem und zwar ich habe bei mir auf der Seite Privatnachrichten als Dialog gemacht und ich möchte das in dem Dialog nur 10 letzte Nachrichten angezeigt werden aber wenn ich den Limit setze gibt er mir nur die 10 erste Nachrichten aus aber ich will 10 lezte Nachrichten. Hier ist meine Mysql - Abfrage.

PHP:
$q = $DB->query("SELECT id, message, from_user, to_user, time, m_read FROM pm_messages 
                                             WHERE (from_user = '$id' AND to_user = '$session') OR (from_user = '$session'
                                             AND to_user = '$id') AND folder = 'outbox' 
                                             AND del != '$session' AND from_user != '0' AND spam = '0'
                                             ORDER BY time ASC
						    LIMIT 10
 						   
                        
                        ;");

Die Lösung ist bestimmt wie immer ganz simple aber ich komme nicht drauf wie ich das anders begrenzen kann. Danke schon mal für Eure Feedbacks
 
ja aber dann geht der Dialog von oben nach unten aber der soll von unten bach oben gehen, das letzte Nachricht muss ganz unten stehen.
 
Ah, jetzt verstehe ich es wohl.

SQL:
SELECT * FROM (SELECT feld1, feld2, feld3 FROM tabelle ORDER BY datumsfeld DESC LIMIT 10) AS tabelle ORDER BY datumsfeld ASC

Wie sieht es damit aus?
 
ich habe doch noch ein kleines Problem, jetzt hab ich bei dem Code Probleme mit der Begrenzung
AND del != '$session' AND spam = '0' das wird einfach ignoriert. :(

die Nachricht wird z.B. trotzdem angezeigt egal ob sie mit Spam markiert wurde oder nicht. Vllt. hab ich hier was falsch gemacht ?


PHP:
	 $q = $DB->query("SELECT * FROM (SELECT id, message, from_user, to_user, time, m_read
							   FROM pm_messages 
                               WHERE (from_user = '$id' AND to_user = '$session') OR (from_user = '$session' AND to_user = '$id')
							   AND del != '$session' AND from_user != '0' AND spam = '0'
							   ORDER BY time DESC LIMIT 10)
							   AS pm
                               ORDER BY time ASC
			   ;");
 
Hallo live4music

versuch es mal so:
PHP:
$q = $DB->query( "SELECT * FROM (
SELECT
    id, message, from_user, to_user, time, m_read
FROM
    pm_messages 
WHERE
    (from_user = '$id' AND to_user = '$session' OR from_user = '$session' AND to_user = '$id') AND del != '$session' AND from_user != '0' AND spam = '0'
ORDER BY
    time
DESC
LIMIT
    10
) AS pm ORDER BY time ASC" );

Gruß
 
Zuletzt bearbeitet:
Zurück