PHP Example: Using PHP to achieve page development in the paging jump

Source: Internet
Author: User
Tags empty implement mysql in variables php example

We all know that using Php+mysql in the Web page to implement the database data display is very simple and interesting, very few database data in the case of the page display is still satisfactory, but when the database data is very many cases, the page display will be very bad, Here is how to achieve the current page data display number and how to achieve dynamic rollover function.

Here are two ways to implement the flip-page display:

Let's introduce the database syntax used in paging:

mysql_query ("SELECT * from table ORDER BY id DESC");

This database statement is more familiar, is used to search for records and display in reverse order, but it does not work in the paging function, and the following extended syntax is to achieve the core function of paging:

mysql_query ("SELECT * from table ORDER BY id desc limit $start, $limit");

The $start here is the starting line of the database search, $limit from the start line search to the end of the $limit record, OK, with this core function, we can start paging function;

The function described here is the simplest one in the page-turning function, which can only be used to turn the page forward and turn the page back, the very news of this station and the page-turning function of the Download Center is this.

First, introduce the way to achieve the function of page:

First determine the number of data records that are fixed on the current page, assuming 20 records, set the $limit value to: $limit = 20;

When you display database records, you must start with the first one, so set the initial value of $start to 0: $start = 0;

And the realization of the paging function depends on the dynamic change of $start, when the page is backward $start the law $limit: $start + $limit, while the forward page $start is regularly subtracted $limit: $start-$limit;

With the above ideas, you can begin to design the program page.php:

?
Sets the number of current page displays (this number can be set arbitrarily)
$limit = 20;
Initializing database search start record
if (!empty ($start)) $start = 0;
mysql_connect ("localhost", "", "");
mysql_select_db (database);
Set Total database records
$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> paging function </td></tr>";
if (!empty ($num)) {
for ($i =0; $i < $num; $i + +) {
$val =mysql_result ($result, $i, "Val");
$val 1=mysql_result ($result, $i, "val1");
echo "<tr><td> $val </td><td> $val 1</td></tr>";
}
}
echo "<tr><td>";
Set Jump to page forward
$prve = $start-$limit;
if ($prve >=0) {
echo "<a href=page.php?start= $prve >prve</a>";
}
Set a jump to page backward
$next = $start + $limit;
if ($next < $num _max) {
echo "<a href=page.php?start= $next >next</a>";
}
echo "</td></tr></table>";
?>

A front turn, back turn function of the program completed. But this feature will be cumbersome when it comes to processing more data. The more powerful, more complex page-flipping feature--looping pages (which I've always called because I can't find a more appropriate name) will continue to be described below.:)

The introduction of a simple page-turning function to achieve, the following introduction of the page is more powerful, more complex, the site of the very forum and very article is to use this circular paging function. The cycle page is the front flip and the number together to achieve, the specific form of expression:

Page: Prve <<1 2 3 4 ..... >> Next

The numbers inside indicate the current page, and the Prve and rear turns are more than just the front and rear flip of the current page, but more complex digital controls.

As in the past, before the program design, the first to clarify the idea, I suggest that the reader after reading how to achieve the function of circular paging, can do their own hands-on practice, because some of the methods and ideas studied here may be more abstract.

First of all, we boldly assume that there are more than 1000 records in the database, we want to display 25 records currently, and the digital flip control is 20, so it is like the following display results:

Page: 0 1 2 3 ... >> Next

After the turn of the display results:

Page: Prve <<20 27 28 ..... >> Next

Okay, let's take a look at the rules, a fixed display number 25, a fixed digital control doubling of 20. We can use these two numbers to achieve the circular paging function;

First set the fixed display variables:
$limit = 20;
Settings for database initial variables:
$start = 0;
Total number of database records: $num;
Page variables: $page;

a number of page loops show the following procedure:

?
...
$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 Exit loop
}
}
?>

In addition to displaying numbers, this code other functions are not implemented, because more digital control flip, so there must be a few variables to mark and identify these controls, here with the $s to mark; this variable is used to control the digital Loop page control, now you can look at the complete code loop to achieve circular paging page.php :

?
$limit = 25;
if (!empty ($start)) $start = 0;
if (!empty ($s)) $s = 0;
mysql_connect ("localhost", "", "");
mysql_select_db (database);
Statistics Database records Total
$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 (!empty ($numb)) {
for ($i =0; $i < $numb; $i + +) {
$val =mysql_result ($result, $i, "Val");
$val 1=mysql_result ($result, $i, "val1");
echo "<tr><td> $val </td><td> $val 1</td></tr>";
}
}
echo "</table>";
The control of digital loop paging
echo "<table>";
echo "<tr><td> page:</td>";
Front Flip Control
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>";
Set the current page corresponding pages no link function
$star = $start;
Notice the initial value of the loop, and think about why it's not 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>";
Control the digital page limit display, control displays only 20 pages
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 ' page.php?";
echo "start= $start &s= $s >next</a></td>";
}
Notice the control of jumping out of circulation
Break
}
}
echo "</tr></table>";
?>

The above Cheng can complete the powerful circular paging function.

There is also a paging function is to submit the page, that is, in the submission form to add data submission, and then the program to jump to the corresponding page, this function to achieve a relatively simple, leaving the reader to complete their own, here no longer introduced ...



Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.