php中的排名/编号

php中的排名/编号,php,sql,loops,pagination,Php,Sql,Loops,Pagination,我试图实现一种方法,在这种方法中,我创建了一个记分板(while循环),并按照某个数字字段(点)对获取的结果进行排序。但我需要做到的是如下几点 rank----username--point 1st------test-----------3200 2nd-----test2---------1200 等等。。我将结果分页,每页限制25个结果。我用下面的方法尝试了一个while循环 while($row = mysql_fetch_array($query) || $i<=$totaln

我试图实现一种方法,在这种方法中,我创建了一个记分板(while循环),并按照某个数字字段(点)对获取的结果进行排序。但我需要做到的是如下几点

rank----username--point
1st------test-----------3200
2nd-----test2---------1200
等等。。我将结果分页,每页限制25个结果。我用下面的方法尝试了一个while循环

while($row = mysql_fetch_array($query) || $i<=$totalnumberofrows ){
   echo out the results
$i++
}

while($row=mysql_fetch_array($query)|$i如果您知道页码和偏移量,您应该能够执行以下操作

$rank = $offset * $page_number;

只需在每页的数字上加上25, 对于第二页(在我的示例中)-添加25 第三页-添加50 等等

$page=2;

而($row=mysql_fetch_array($query)|$i您要查找的是mysql LIMIT语句。例如,以下查询将返回条目0-24(因此,数据库中的前25个条目):

假设要获取第二页(接下来的25个条目),可以执行以下操作:

SELECT * FROM entries ORDER BY `points` LIMIT 25, 25
这里需要注意的最重要的一点是,第一个参数是它应该开始的行,第二个参数不是最后一行,而是它应该返回的行的总数

要确定起点,只需执行($page_number-1)*25),假设您的第一页编号为1。例如,您可以执行以下操作:

<?php
$start = (($page_number - 1) * 25);
$query = "SELECT * FROM entries ORDER BY `points` LIMIT {$start}, 25";
// ... rest of your code goes here ...
?>

试试ezSQL。它很容易完成分页任务。干杯。
SELECT * FROM entries ORDER BY `points` LIMIT 25, 25
<?php
$start = (($page_number - 1) * 25);
$query = "SELECT * FROM entries ORDER BY `points` LIMIT {$start}, 25";
// ... rest of your code goes here ...
?>