Home Backend Development PHP Tutorial PHP paging ideas and use in ZF_PHP tutorial

PHP paging ideas and use in ZF_PHP tutorial

Jul 21, 2016 pm 03:18 PM
php use Pagination variable exist Ideas success number show of want Record need

Only two variables are needed to get half the success:
The number of records to be displayed on each page $pageSize
The total amount of data in the table $rowCount
With the above two variables, we can get the total How many pages are there $pageCount
and then through a for loop, for example, if there are 13 pages in total, then it is easy to output the number of pages through the for loop

Copy code The code is as follows:

$nav='';//A variable used to save the number of pages
for ($i=1;$i<=13;$i++)
{
 $nav.="Page ".$i." ";
}

The above for loop will output the following:
Page 1, Page 2, Page 3, Page 4, Page 5, Page 6, Page 7, Page 8 , Page 9, Page 10, Page 11, Page 12, Page 13
What if we only want to display ten pages at a time? For example, pages 1-10 and 11-20
are very simple. You only need to slightly modify the for loop to achieve
Copy the code The code is as follows:

$step= floor(($pageNow-1)/10)*10+1;
for ($i=$step;$i<=$step+10;$i++)
{
 $nav.="page ".$i." ";
}

For example, if the current page $pageNow is between 1 and 10, then $step=0
If the current page $pageNow is between 11 and 20, then $step= 10
If the current page $pageNow is between 21 and 30, then $step=20
Referring to the code of the specific implementation process, we can easily find that the second condition of the for loop only needs to add 10 Then we can realize that only 10 pages are displayed at a time. We divide this step into the getLink() method in the fenyePage class
Then again, how can we get the values ​​​​of the two variables $pageSize and $rowCount? Woolen cloth?
$pageSize can be specified by the programmer himself, $rowCount can be obtained by using a simple function that executes sql statements
Copy code The code is as follows:

/**
* $sql statement: ① Get data ② Get total number of records
*/
class fenyePage{
public $pageSize=5;//The number displayed per page-->
public $rowCount;//This is obtained from the database (in the form of SELECT COUNT(id) FROM TABLE) specified by the programmer and used to save the total number of records
public $pageNow;//Through $ _GET['page'] obtained, used to save the current page number
public $pageCount;//Calculated, used to save the total number of pages
public $res_arr;//Used to save to be displayed Data to the page (such as saving the data retrieved by SELECT * FROM TABLE LIMIT 0,10)
public $nav;//Display the navigation bar of which page and which page
/**
* Get the hyperlink of the current page
*
* @author Xiaofei 2012/5/30
*/
public function getLink()
{
$this->nav='';
$this->pageCount=ceil(($this->rowCount/$this->pageSize ));
$step= floor(($this->pageNow-1)/10)*10+1;
if ($this->pageNow>10)
{
$this->nav.=" << ";//Overall every 10 Page forward
}
if ($this->pageNow!=1)
{
$this->nav.=" Previous page ";
}
if ($this->pageNow!=1)
{
$this->nav.="Homepage ";
}
for ($start=$ step;$start<$step+10 && $start<=$this->pageCount;$start++)
{
$this->nav.="".$start." ";
}
if ($this->pageNow!=$this->pageCount)
{
$this->nav.="Last page ";
}
if ($this->pageNow!=$this->pageCount)
{
$this->nav.=" Next page";
}
if ($this->pageCount>10 && $this-> pageNow<$this->pageCount-8){
$this->nav.=" > ;> ";//Turn backward every 10 pages as a whole
}
$this->nav.="/Total ".$this->pageCount."pages";
}
}
?>

Since the task of operating the database in zf is completed by the model layer, I put the function to obtain the value of $rowCount in the corresponding table model
For example: I operate the order table
Then When I want to display all order information, I get the value of $rowCount through the showorder() method in the order class, and pay it to the $rowCount attribute in the paging class
Similarly, the data to be displayed on the page The information is also paid to the $res_arr attribute
in the paging class. In this way, we can easily instantiate a paging class (fenyePage), and then pass it to the showorder() function through parameters, and the function Complete the following actions:
①The information to be displayed on the page
②How many records are there in the table
Copy the code The code is as follows:

/**
* Based on the specified user id, query the user’s historical ordering records
*
* @author Xiaofei 2012/5/30
* @param $id user id
* @param $fenye is an object instantiated to handle paging
* @todo $sql1 statement "select * from table where * limit 0,10" This sql statement is mainly used to retrieve data in the database and display it in the view Layer
* @todo $sql2 statement "select count(id) from table" This sql statement is used to get the total amount of data
*/
public function showorder($id=null,$fenye=null)
{
$db = $this->getAdapter( );
$select=$db->select();
$select->from(array('o' => 'order'),array('o.id','o .user_id','o.user_name','o.food_name','o.food_price','o.order_time','o.order_state'));
if ($id!=null){
$select->where('o.user_id=?',$id);
}
$select->join(array('d'=>'department'),'o. dep_id = d.id','d.dep_name');
if($fenye!=null){
$select->limit($fenye->pageSize,($fenye->pageNow -1)*$fenye->pageSize);
}
$sql1=$select->__toString();
//This sql statement is mainly used to calculate the total amount of data
$sql2="SELECT COUNT(id) FROM `order`";
$fenye->res_arr=$db->fetchAll($sql1);//Store the data to be displayed to the $res_arr attribute of the paging class Among them, it is convenient to call
$rowCount=$db->fetchAll($sql2);//Save the total amount of data in the table to the rowCount attribute of the paging class
$fenye->rowCount=$rowCount [0]['COUNT(id)'];
$fenye->getLink();
return $fenye->res_arr;
}

This is it, The paging function has been implemented
Original article: WEB development_Xiao Fei

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/325428.htmlTechArticleYou only need to get two variables to achieve half the success: The number of records to be displayed on each page $pageSize The total in the table Data volume $rowCount With the above two variables, we can find out how many pages there are...
Statement of this Website
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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

Top 10 Global Digital Virtual Currency Trading Platform Ranking (2025 Authoritative Ranking) Top 10 Global Digital Virtual Currency Trading Platform Ranking (2025 Authoritative Ranking) Mar 06, 2025 pm 04:36 PM

In 2025, global digital virtual currency trading platforms are fiercely competitive. This article authoritatively releases the top ten digital virtual currency trading platforms in the world in 2025 based on indicators such as transaction volume, security, and user experience. OKX ranks first with its strong technical strength and global operation strategy, and Binance follows closely with high liquidity and low fees. Platforms such as Gate.io, Coinbase, and Kraken are at the forefront with their respective advantages. The list covers trading platforms such as Huobi, KuCoin, Bitfinex, Crypto.com and Gemini, each with its own characteristics, but investment should be cautious. To choose a platform, you need to consider factors such as security, liquidity, fees, user experience, currency selection and regulatory compliance, and invest rationally

PHP and Python: Comparing Two Popular Programming Languages PHP and Python: Comparing Two Popular Programming Languages Apr 14, 2025 am 12:13 AM

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

What is Cross-Site Request Forgery (CSRF) and how do you implement CSRF protection in PHP? What is Cross-Site Request Forgery (CSRF) and how do you implement CSRF protection in PHP? Apr 07, 2025 am 12:02 AM

In PHP, you can effectively prevent CSRF attacks by using unpredictable tokens. Specific methods include: 1. Generate and embed CSRF tokens in the form; 2. Verify the validity of the token when processing the request.

See all articles