我在分页时对排序和给出排名遇到了一些问题。
$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 中的限制(在您的情况下)比获取所有行并仅获取一些行要好。