Web development is the mainstream of distributed program development in the future. Usually web development involves dealing with databases. The client reads from the server and usually displays them in the form of paging. Reading page by page is both convenient and efficient. 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 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 retrieve the 20 records starting from the 11th record in the table.
2. Main code analysis
$pagesize=10; //Set the number of records displayed on each page
$conn=mysql_connect("localhost","root",""); //Connect to the database
$rs=mysql_query("select count(*) from tb_product",$conn); //Get the total number of records $rs
$myrow = mysql_fetch_array($rs);
$numrows=$myrow[0];
//Calculate the total number of pages
$pages=intval($numrows/$pagesize);
//Judge the page number setting
if (isset($_GET['page'])){
$page=intval($_GET['page']);
}
else{
$page=1; //Otherwise, set to the first page
}
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 paging example</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<?php
$conn=mysql_connect("localhost","root","");
//Set the number of records displayed on each page $pagesize=1;
mysql_select_db("mydata",$conn);
//Get the total number of records $rs, and calculate the total number of pages using $rs=mysql_query("select count(*) from tb_product",$conn);
$myrow = mysql_fetch_array($rs);
$numrows=$myrow[0];
//Calculate the total number of pages
$pages=intval($numrows/$pagesize);
if ($numrows%$pagesize)
$pages++;
//Set the number of pages if (isset($_GET['page'])){
$page=intval($_GET['page']);
}
else{
//Set to the first page $page=1;
}
//Calculate record offset $offset=$pagesize*($page - 1);
//Read the specified number of records $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">Title</td>
<td width="50%" bgcolor="#E0E0E0">
<p align="center">Publish time</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'> has ".$pages." 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 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."'>Homepage</a> ";
echo "<a href='fenye.php?page=".$prev."'>Previous page</a> ";
}
if ($page < $pages)
{
echo "<a href='fenye.php?page=".$next."'>Next page</a>
echo "<a href='fenye.php?page=".$last."'>Last page</a> ";
}
In fact, writing paging display code is very simple, as long as you master its working principle. I hope this article can bring help to those web programmers who need this aspect of programming.