Quelle est la meilleure et la plus simple façon de procéder? Ma requête est actuellement:
SELECT *
FROM chat
WHERE (userID = $session AND toID = $friendID)
OR (userID = $friendID AND toID = $session)
ORDER BY id
LIMIT 10
Cela montre les 10 premières lignes, pas les 10 dernières.
EDIT: Je veux les 10 dernières lignes (ce qui, oui, DESC le fait) Cependant, je veux qu'elles soient retournées dans l'ordre ASCENDING.
pour inverser l'ordre (donc obtenir les 10 derniers au lieu des 10 premiers), utilisez DESC
au lieu de ASC
MODIFIER
Basé sur votre commentaire:
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
Si vous voulez les 10 derniers, changez simplement ASC en 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";
D'abord j'ai fixé la limite
$limit = 10;
puis
$total_rows = mysqli_num_rows($resource);
Ici, j'ai pris le nombre total de lignes affectées.
$start = $total_rows-$limit;
puis soustrayez la limite du nombre de lignes pour prendre le numéro d'enregistrement de départ
$query_limit= $query." LIMIT $start,$limit";
et ensuite ajouté limit à la requête. Pour plus d'informations sur limit, voir ce lien https://www.w3schools.com/php/php_mysql_select_limit.asp