在php中分页,在多个页面上显示数据

时间:2012-04-25 14:03:11

标签: php mysql pagination paging

您好我正在尝试通过页面显示我的用户数据

这是我的代码:

//Run a query to select all the data from the users table
$perpage = 2;
$result = mysql_query("SELECT * FROM users LIMIT $perpage");

它确实每页只显示两个,但我想知道如何获得链接到数据的底部的页码

这是我更新的代码

 $result = mysql_query("SELECT * FROM users");  // Let's get the query    
 $nrResults=mysql_num_rows($result); // Count the results    
if (($nrResults%$limit)<>0) {       
 $pmax=floor($nrResults/$limit)+1;  // Divide to total result by the number of query 
// to display per page($limit) and create a Max page    
 } else {     
$pmax=floor($nrResults/$limit); 
}     
$result = mysql_query("SELECT * FROM users LIMIT 2 ".(($_GET["page"]-1)*$limit).", $limit");  
// generate query considering limit    
while($line = mysql_fetch_array( $result )) 
{   
?> 

错误

解析错误:语法错误,第98行E:\ xampp \ htdocs \ Admin.php中的意外$结尾

2 个答案:

答案 0 :(得分:4)

为了做到这一点,你还需要在SQL语句中使用偏移值,因此它将是

SELECT * FROM users LIMIT $offset, $perpage

示例:

SELECT * FROM tbl LIMIT 5,10;  # Retrieve rows 6-15

然后,为了获得放置在页面底部的链接,您需要获取总数据的计数,将总数除以每页值以计算出您将拥有的页数。

然后根据用户点击的页面设置偏移值。

希望有所帮助!

更新

意外结束很可能意味着您的代码中有一个额外的结束括号},导致页面结束并且后面仍然有更多代码。查看代码并匹配括号以解决问题。您粘贴的代码示例中还有一些其他问题。

$result = mysql_query("SELECT * FROM users" ); //Note if you have a very large table you probably want to get the count instead of selecting all of the data... 
$nrResults = mysql_num_rows( $result ); 
if( $_GET['page'] ) {
  $page = $_GET['page']
} else {
  $page = 1;
}
$per_page = 2;
$offset = ($page - 1) * $per_page; //So that page 1 starts at 0, page 2 starts at 2 etc.
$result = mysql_query("SELECT * FROM users LIMIT $offset,$per_page");
while( $line = mysql_fetch_array( $result ) ) 
{
//Do whatever you want with each row in here
}

希望有所帮助

然后您可以使用nrResults编号来确定您将拥有多少页...如果您有10个记录并且每页显示2个,那么您将有5个页面,因此您可以打印5个链接页面中每个页面都有正确的页面#...

答案 1 :(得分:1)

使用请求! http://php.net/manual/en/reserved.variables.request.php

if (((isset($_GET['page'])) AND (is_int($_GET['page']))) {
$perpage = $_GET['page'];
}
$result = mysql_query("SELECT * FROM users LIMIT $perpage");

...

链接http://yourwebsite.com/userlistforexample.php page = 3

http://yourwebsite.com/userlistforexample.php?somethingishere=21& 页= 3