1. Principle of paging program
The paging program has two very important parameters: how many records are displayed on each page ($pagesize) and what page is the current 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 take out 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))
4. 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 "<div 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 "</div>"; ?> </body> </html>
5. Summary
This example code is in windows2000 server +php4.4.0+mysql5.0.16 runs normally. 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> "; }
Web development is the mainstream of distributed program development in the future, and general web Development all involves dealing with the database. The client reads from the server and is usually displayed in the form of paging. Reading page by page is both convenient and beautiful. So writing paging programs is an important part of web development.
Related recommendations:
A simple implementation of the simplest PHP paging code
A universal PHP paging class Example code
php paging example code (can be modified and used directly)
The above is the detailed content of How to write PHP pagination code. For more information, please follow other related articles on the PHP Chinese website!