Home  >  Article  >  Backend Development  >  Implementation of two page turning display functions in PHP

Implementation of two page turning display functions in PHP

墨辰丷
墨辰丷Original
2018-06-06 14:22:403929browse

This article mainly introduces the implementation of two page turning display functions in PHP. Interested friends can refer to it. I hope it will be helpful to everyone.

We all know that it is very simple and interesting to use php mysql to display all database information on a web page. When there is very little database information, the page display is still satisfactory, but when there is a lot of database information Next, the display of the page will become very bad. Let's introduce how to display the amount of data on the current page and how to implement the dynamic flip function.
Here we will introduce the implementation of two page turning display functions:
First introduce the database syntax used in page turning:

mysql_query("select * from table order by id desc");

You will be familiar with this database statement However, it is used to search for records and display them in reverse order, but it does not work in the page turning function. The following extended syntax is the core function of page turning:

mysql_query("select * from table order by id desc limit $start,$limit");

Here $start is the starting row of the database search, $limit is the search starting from the starting row and ending with $limit records. Well, with this core function, we can start the page turning function.

The first page turning function: The function introduced here is the simplest one among the page turning functions. It can only realize page turning forward and page turning backward. The function of this site This is the page turning function of the Very News and Download Center.
Let’s first introduce the idea of ​​implementing the page turning function:

  • First determine the number of data records fixedly displayed on the current page, assuming it is 20 records, set $ The value of limit is 20: $limit=20;

  • When displaying database records, they must be displayed from the first one, so the initial value of $start is set here to 0:$start =0;

  • The realization of the page turning function relies on the dynamic change of $start. When turning the page backward, $start regularly adds $limit:$start $limit; while going forward When turning pages, $start subtracts $limit regularly: $start-$limit;

After having the above ideas, you can start designing the program

page.php:

<? 
//设置当前页显示的数量(这个数量可任意设置) 
$limit=20; 
//初始化数据库搜索起始记录 
if (!emptyempty($start)) $start=0; 
mysql_connect("localhost","",""); 
mysql_select_db(database); 
//设置数据库记录总数 
$result=mysql_query("select * from table"); 
$num_max=mysql_numrows($result); 
$result=mysql_query("select * from table order by id desc limit $start,$limit); 
$num=mysql_numrows($result); 
echo "<table><tr><td>翻页功能</td></tr>"; 
if (!emptyempty($num)) { 
for ($i=0;$i<$num;$i++) { 
$val=mysql_result($result,$i,"val"); 
$val1=mysql_result($result,$i,"val1"); 
echo "<tr><td>$val</td><td>$val1</td></tr>"; 
} 
} 
echo "<tr><td>"; 
//设置向前翻页的跳转 
$prve=$start-$limit; 
if ($prve>=0) { 
echo "<a href=page.php?start=$prve>prve</a>"; 
} 
//设置向后翻页的跳转 
$next=$start+$limit; 
if ($next<$num_max) { 
echo "<a href=page.php?start=$next>next</a>"; 
} 
echo "</td></tr></table>"; 
?>

A program with forward and backward functions has been completed, but this function will be very cumbersome when processing more data and displaying it. We will continue to introduce it below. A more powerful and complex page turning function - circular page turning (I have always called it this, because I can't find a more appropriate name).:)

The implementation of the simple page turning function was introduced earlier, and the following is introduced The page turning function is more powerful and complex. The special forums and articles on this site use this circular page turning function.
The circular page turning is achieved by turning forward and backward together with numbers. The specific expression is: :

Page: prve 950430dac9af760a1134fad1a051aae2> nextThe numbers inside represent each current Page, prve and next are not just forward and backward flips of the current page, but more complex digitally controlled front and back flips.

As always, before proceeding with program design, let’s clarify our ideas first. I suggest readers to practice it themselves after reading how to implement the page turning function, because some of the methods studied here are The ideas may be relatively abstract.

First of all, we boldly assume that there are more than 1,000 records in the database. We want to currently display 25 records, and the number flip control is 20, so the following display results will be shown:

Page : 0 1 2 3 ......... 19 >> nextThe displayed result after flipping:

page: prve f2621fbe60046edc911e96fa512b8a6a> nextOkay, let’s take a look at the rules. A fixed number displays the number 25, and a fixed number controls the doubling of 20. We can use these two numbers to implement the page turning function;First set the fixed display variable:
$limit=20;

Setting of the initial variable of the database:

$start= 0;

The total number of database records is:

$num;

Page variable:$page;
The program for a page number loop display is as follows:

<? 
... 
$result=mysql_query("select * from table"); 
$num=mysql_numrows($result); 
for ($page=0;$page<($num/$limit);$page++) { 
echo $page; 

if ($page>0 && ($page%20)==0) { 
break; //退出循环 
} 
} 
?>

Except for displaying numbers, this code does not implement any other functions. Because there are more numbers to control flipping, several variables must be used to mark and identify these control quantities. $s is used to mark them here. This variable is used to To control digital cycle page turning, you can now look at the complete code page.php that implements cycle page turning:

<? 
$limit=25; 
if (!emptyempty($start)) $start=0; 
if (!emptyempty($s)) $s=0; 
mysql_connect("localhost","",""); 
mysql_select_db(database); 
//统计数据库记录总数 
$result=mysql_query("select * from table"); 
$num=mysql_numrows($result); 
$result=mysql_query("select * from table order by id limit $start,$limit"); 
$numb=mysql_numrows($result); 
echo "<table>"; 
if (!emptyempty($numb)) { 
for($i=0;$i<$numb;$i++) { 
$val=mysql_result($result,$i,"val"); 
$val1=mysql_result($result,$i,"val1"); 
echo "<tr><td>$val</td><td>$val1</td></tr>"; 
} 
} 
echo "</table>"; 
//数字循环翻页的控制 
echo "<table>"; 
echo "<tr><td>页:</td>"; 
//前翻控制 
if ($s>20) { 
if ($s==21) { 
$st=$s-21; 
} else { 
$st=$s-20; 
} 
$pstart=$st*$limit; 
echo "<td><a href=page.php?"; 
echo "start=$pstart&s=$st>prve</a></td>"; 
} 
echo "<td> >></td>"; 
//设置当前页对应页数无链接功能 
$star=$start; 
//注意循环的初始附值,仔细想想为什么不是 0 
for ($page=$s;$page<($num/$limit);$page++) { 
$start=$page*$limit; 
echo "<td>"; 
if($page!=$star/$limit) { 
echo "<a href=page.php?"; 
echo "start=$start&s=$s>"; 
} 
echo $page; 
if($page!=$star/$limit) { 
echo "</a>"; 
} 
echo "</td>"; 
//控制数字页面限制显示功能,控制只显示 20 页 
if ($page>0 && ($page%20)==0) { 
if ($s==0) { 
$s=$s+21; 
} else { 
$s=$s+20; 
} 
$start=$start+$limit; 
if ((($num/$limit)-1)>$page) { 
echo "<td> <<</td><td><a href&#39;page.php?"; 
echo "start=$start&s=$s>next</a></td>"; 
} 
//注意跳出循环的控制 
break; 
} 
} 
echo "</tr></table>"; 
?>

There is also a page turning function that is to submit page turning, that is, add data submission in the submission form. The program then jumps to the corresponding page. This function is relatively simple to implement and is left to the reader to complete.

Summary: The above is the entire content of this article, I hope it will be helpful to everyone's study.

Related recommendations:

PHP recursive implementation of hierarchical tree expansion method

Usage and example analysis of PHP array function array_multisort()

PHP function import_request_variables() usage and example analysis

The above is the detailed content of Implementation of two page turning display functions in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn