0

分页真的让我很困惑。我的代码有效,但它只显示第一页。下一页不起作用。我只想每页显示 3 条记录。您是否必须有另一个查询才能显示第二页的结果?

<?php 

 // Connects to your Database 

 mysql_connect("localhost", "root", "") or die(mysql_error()); 

 mysql_select_db("db_pet") or die(mysql_error()); 


 //This checks to see if there is a page number. If not, it will set it to page 1 

 if (!(isset($pagenum))) 

 { 

 $pagenum = 1; 

 } 



 //Here we count the number of results 

 //Edit $data to be your query 

 $data = mysql_query("SELECT * FROM tb_pet") or die(mysql_error()); 

 $rows = mysql_num_rows($data); 



 //This is the number of results displayed per page 

 $page_rows = 3; 



 //This tells us the page number of our last page 

 $last = ceil($rows/$page_rows); 



 //this makes sure the page number isn't below one, or more than our maximum pages 

 if ($pagenum < 1) 

 { 

 $pagenum = 1; 

 } 

 elseif ($pagenum > $last) 

 { 

 $pagenum = $last; 

 } 



 //This sets the range to display in our query 

$max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows; 






 //This is your query again, the same one... the only difference is we add $max into it

 $data_p = mysql_query("SELECT * FROM tb_pet $max") or die(mysql_error()); 


 //This is where you display your query results

 while($info = mysql_fetch_array($data_p)) 

 { 

 Print $info['pet_name']; 

 echo "<br>";

 } 

 echo "<p>";


 // This shows the user what page they are on, and the total number of pages

echo " --Page $pagenum of $last-- <p>";


 // First we check if we are on page one. If we are then we don't need a link to the previous page or the first page so we do nothing. If we aren't then we generate links to the first page, and to the previous page.

 if ($pagenum == 1) 

 {

 } 

 else 

 {

 echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=1'> <<-First</a> ";

 echo " ";

 $previous = $pagenum-1;

 echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$previous'> <-Previous</a> ";

 } 


 //just a spacer

echo " ---- ";


 //This does the same as above, only checking if we are on the last page, and then generating the Next and Last links

 if ($pagenum == $last) 

 {

 } 

 else {

 $next = $pagenum+1;

 echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$next'>Next -></a> ";

 echo " ";

 echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$last'>Last ->></a> ";

 } 

 ?> 
4

1 回答 1

1
if (!(isset($pagenum))) {
    $pagenum = 1;
}

你没有在这一行的任何地方设置 $pagenum 而是它应该是

if (!(isset($_GET['pagenum']))) {
   $pagenum = 1;
 }else{
   $pagenum = $_GET['pagenum'];
 }

它只是修复您的代码,您需要改进编写代码的方式并尝试使用 PDO 代替 mysql 函数

于 2012-09-11T11:29:41.263 回答