收到结果后限制查询结果


Limit query results after receiving result

我在分页时对排序和给出排名遇到了一些问题。

$query = "SELECT * FROM users WHERE approved=1 ORDER BY Likes DESC LIMIT $start_from, $num_rec_per_page"; 
$result = mysqli_query($conn,$query);
$i=1;
while($row = mysqli_fetch_assoc($result)){
echo 'Rank: '.$i++.'. Name:'.$row[Name].'Likes: '.$row[Likes].'<br>';
}

这样,每个页面排名都会重新给出。我的问题是,如何在收到所有数据后限制查询,或者也许是关于做其他分页方式的一些建议。

更新:通过更改 $i=1 修复了此问题; 到 $i=$start_from+1;

限制$i ?

$maxPerPage = 20;
$i = 0;
while($i < $maxPerPage && $row = mysqli_fetch_assoc($result)){
    echo 'Rank: '.$i++.'. Name:'.$row[Name].'Likes: '.$row[Likes].'<br>';
}

但是 mysql 中的限制(在您的情况下)比获取所有行并仅获取一些行要好。