Web development is the mainstream of distributed program development in the future. Usually web development involves dealing with the database. The client reads from the server and usually displays it in the form of paging, one page per page. The page is easy to read and beautiful. Therefore, writing paging programs is an important part of web development. Here, we will study the writing of paging programs together.
1. Principle of paging program
The paging program has two very important parameters: how many records are displayed on each page ($pagesize) and the current Which page ($page). With these two parameters, we can easily write a paging program. We use the MySql database as the data source. In mysql, if you want to remove a specific piece of content in the table, you can use the T-SQL statement: select * from table limit offset, rows to achieve. The offset here is the record offset, and its calculation method is offset=$pagesize*($page-1), rows is the number of records to be displayed, here is $page. In other words, the statement select * from table limit 10,10 means to retrieve the 20 records starting from the 11th record in the table.
2. Main code analysis
$pagesize=10; //设置每一页显示的记录数 $conn=mysql_connect("localhost","root",""); //连接数据库 $rs=mysql_query("select count(*) from tb_product",$conn); //取得记录总数$rs $myrow = mysql_fetch_array($rs); $numrows=$myrow[0]; //计算总页数 $pages=intval($numrows/$pagesize); //判断页数设置 if (isset($_GET['page'])){ $page=intval($_GET['page']); } else{ $page=1; //否则,设置为第一页 }
3. Create use case table myTable
create table myTable(id int NOT NULL auto_increment,news_title varchar(50),news_cont text,add_time datetime,PRIMARY KEY(id))
IV. Complete code
<html> <head> <title>php分页示例</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body> <?php $conn=mysql_connect("localhost","root",""); //设定每一页显示的记录数 $pagesize=1; mysql_select_db("mydata",$conn); //取得记录总数$rs,计算总页数用 $rs=mysql_query("select count(*) from tb_product",$conn); $myrow = mysql_fetch_array($rs); $numrows=$myrow[0]; //计算总页数 $pages=intval($numrows/$pagesize); if ($numrows%$pagesize) $pages++; //设置页数 if (isset($_GET['page'])){ $page=intval($_GET['page']); } else{ //设置为第一页 $page=1; } //计算记录偏移量 $offset=$pagesize*($page - 1); //读取指定记录数 $rs=mysql_query("select * from myTable order by id desc limit $offset,$pagesize",$conn); if ($myrow = mysql_fetch_array($rs)) { $i=0; ?> <table border="0" width="80%"> <tr> <td width="50%" bgcolor="#E0E0E0"> <p align="center">标题</td> <td width="50%" bgcolor="#E0E0E0"> <p align="center">发布时间</td> </tr> <?php do { $i++; ?> <tr> <td width="50%"><?=$myrow["news_title"]?></td> <td width="50%"><?=$myrow["news_cont"]?></td> </tr> <?php } while ($myrow = mysql_fetch_array($rs)); echo "</table>"; } echo "<p align='center'>共有".$pages."页(".$page."/".$pages.")"; for ($i=1;$i< $page;$i++) echo "<a href='fenye.php?page=".$i."'>[".$i ."]</a> "; echo "[".$page."]"; for ($i=$page+1;$i<=$pages;$i++) echo "<a href='fenye.php?page=".$i."'>[".$i ."]</a> "; echo "</p>"; ?> </body> </html>
V. Summary
This example code runs normally on windows2000 server+php4.4.0+mysql5.0.16. The paging format shown in this example is [1][2][3]…. If you want to display it in the form of "Home page, previous page, next page, last page", please add the following code:
$first=1; $prev=$page-1; $next=$page+1; $last=$pages; if ($page > 1) { echo "<a href='fenye.php?page=".$first."'>首页</a> "; echo "<a href='fenye.php?page=".$prev."'>上一页</a> "; } if ($page < $pages) { echo "<a href='fenye.php?page=".$next."'>下一页</a> echo "<a href='fenye.php?page=".$last."'>尾页</a> "; }
In fact, writing paging display code is very simple, as long as you master it How it works. I hope this article can bring help to those web programmers who need this aspect of programming.
The above is the detailed content of How to implement paging display with PHP+MySQL. For more information, please follow other related articles on the PHP Chinese website!