Was ist der beste und einfachste Weg, dies zu tun? Meine Anfrage lautet derzeit:
SELECT *
FROM chat
WHERE (userID = $session AND toID = $friendID)
OR (userID = $friendID AND toID = $session)
ORDER BY id
LIMIT 10
Dies zeigt jedoch die ersten 10 Reihen, nicht die letzten 10.
BEARBEITEN: Ich möchte die letzten 10 Zeilen.
um die Reihenfolge umzukehren (also die letzten 10 statt der ersten 10 zu erhalten), verwenden Sie DESC
anstelle von ASC
EDIT
Basierend auf Ihrem Kommentar:
SELECT * FROM (
SELECT *
FROM chat
WHERE (userID = $session AND toID = $friendID)
OR (userID = $friendID AND toID = $session)
ORDER BY id DESC
LIMIT 10
) AS `table` ORDER by id ASC
Wenn Sie die letzten 10 wollen, ändern Sie einfach ASC in DESC
SELECT *
FROM
chat
WHERE
(userID=$session AND toID=$friendID)
OR
(userID=$friendID AND toID=$session)
ORDER BY id
DESC
LIMIT 10
$con = mysqli_connect("localhost","my_user","my_password","my_db");
$limit = 10;
$query = "SELECT * FROM $table";
$resource = mysqli_query($con,$query);
$total_rows = mysqli_num_rows($resource);
$start = $total_rows-$limit;
$query_limit= $query." LIMIT $start,$limit";
Zuerst habe ich das Limit festgelegt
$limit = 10;
dann
$total_rows = mysqli_num_rows($resource);
Hier habe ich die Gesamtzahl der betroffenen Zeilen genommen.
$start = $total_rows-$limit;
dann wird das Limit von der Anzahl der Zeilen abgezogen, um die Nummer des Startsatzes zu übernehmen
$query_limit= $query." LIMIT $start,$limit";
und fügte dann der Abfrage Grenzwert hinzu. Weitere Informationen zu Grenzwerten finden Sie unter diesem Link https://www.w3schools.com/php/php_mysql_select_limit.asp