PHP MySql分页?

PHP MySql分页?,php,mysql,Php,Mysql,分页真把我弄糊涂了。我的代码可以工作,但它只显示第一页。下一页不起作用。我只想每页显示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 se

分页真把我弄糊涂了。我的代码可以工作,但它只显示第一页。下一页不起作用。我只想每页显示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> ";

 } 

 ?> 

您没有将$pagenum设置在此行的任何位置,而是应该设置在该位置

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

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

我不知道如何将页码传递给代码。应该像
$pagenum=isset($\u GET['pagenum'])?(int)$\u GET['pagenum']:1
请参见上面的评论,第二,如果没有从页面行到页面行的偏移量限制(每页10个结果,0,9-10,19等),您的结果永远不会返回任何不同的结果。说真的,还有20个人问了同样的问题。在google上搜索php mysql分页将得到大约400000results@user1551672@user1551672所以你看不出“`”(空行)和
$pagenum=isset($\u GET['pagenum'])之间有什么区别?(int)$\u GET['pagenum']:1
if (!(isset($_GET['pagenum']))) {
   $pagenum = 1;
 }else{
   $pagenum = $_GET['pagenum'];
 }