Home Backend Development PHP Tutorial PHP paging code example and its use in ZF

PHP paging code example and its use in ZF

Jul 25, 2016 am 08:52 AM

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

for above The loop will output something like 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 Page What if we only want to display ten pages at a time? For example, pages 1-10, pages 11-20 Just modify the for loop slightly:

  1. $step= floor(($pageNow-1)/10)*10+1;
  2. for ($i=$step;$i<=$step+10;$i++ )
  3. {
  4.   $nav.="page ".$i." ";
  5. }
Copy the code

For example, if the current page $pageNow is between 1~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, it is not difficult to find that the second condition of the for loop only needs to add 10 to achieve the situation of only displaying 10 each time. We will package this step in the getLink in the fenyePage class. () method Then again, how can we get the values ​​of the $pageSize and $rowCount variables? $pageSize can be specified by the programmer himself, and $rowCount can be obtained with the help of a simple function that executes sql statements.

  1. /**
  2. * $sql statement: ① Get data ② Get total number of records
  3. */
  4. class fenyePage{
  5. public $pageSize=5;//The number displayed per page-->specified by the programmer
  6. public $rowCount; //This is obtained from the database (in the form of SELECT COUNT(id) FROM TABLE) and used to save the total number of records
  7. public $pageNow;//Acquired through $_GET['page'], used to save the current The page number
  8. public $pageCount;//Calculated, used to save the total number of pages
  9. public $res_arr;//Used to save the data to be displayed on the page (such as saving SELECT * FROM TABLE LIMIT 0,10 retrieved data)
  10. public $nav;//Display the navigation bar of which page
  11. /**
  12. * Get the hyperlink of the current page
  13. *
  14. * @author Xiaofei 2012/5/30
  15. */
  16. public function getLink()
  17. {
  18. $this->nav='';
  19. $this ->pageCount=ceil(($this->rowCount/$this->pageSize));
  20. $step= floor(($this->pageNow-1)/10)*10+1;
  21. if ($this->pageNow>10)
  22. {
  23. $this->nav.=" << ; ";//Turn forward every 10 pages as a whole
  24. }
  25. if ($this->pageNow!=1)
  26. {
  27. $this->nav.=" Previous page ";
  28. }
  29. if ($this->pageNow!=1)
  30. {
  31. $this->nav.="Homepage ";
  32. }
  33. for ($start=$step;$start<$step +10 && $start<=$this->pageCount;$start++)
  34. {
  35. $this->nav.=" ".$start." ";
  36. }
  37. if ($this->pageNow!=$this->pageCount)
  38. {
  39. $this->nav.="Last page ";
  40. }
  41. if ($this->pageNow!=$this->pageCount)
  42. {
  43. $this->nav.=" Next page";
  44. }
  45. if ($this->pageCount>10 && $this->pageNow<$this->pageCount-8){
  46. $this->nav.=" >> ";//Turn backward every 10 pages as a whole
  47. }
  48. $this->nav.="/Total ".$this->pageCount."page";
  49. }
  50. }
  51. ?>
Copy code

Since the task of operating the database in zf is completed by the model layer, I placed 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 information to be displayed on the page 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 will complete the following actions: ①Information to be displayed on the page ②How many records are there in the table?

  1. /**
  2. * According to the specified user id, query the historical ordering record of the user
  3. *
  4. * @author Xiaofei 2012/5/30
  5. * @param $id user id
  6. * @param $fenye An object instantiated for Processing paging
  7. * @todo $sql1 statement "select * from table where * limit 0,10" This sql statement is mainly used to retrieve data in the database for display in the view layer
  8. * @todo $sql2 statement "select count( id) from table" This sql statement is used to get the total data volume
  9. * @link http://bbs.it-home.org
  10. */
  11. public function showorder($id=null,$fenye=null)
  12. {
  13. $db = $this->getAdapter();
  14. $select=$db->select();
  15. $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'));
  16. if ($id!=null){
  17. $select->where('o. user_id=?',$id);
  18. }
  19. $select->join(array('d'=>'department'),'o.dep_id = d.id','d.dep_name');
  20. if($fenye!=null){
  21. $select->limit($fenye->pageSize,($fenye->pageNow-1)*$fenye->pageSize);
  22. }
  23. $sql1=$ select->__toString();
  24. //This sql statement is mainly used to calculate the total amount of data
  25. $sql2="SELECT COUNT(id) FROM `order`";
  26. $fenye->res_arr=$db-> ;fetchAll($sql1);//Store the data to be displayed in the $res_arr attribute of the paging class, which is convenient for calling
  27. $rowCount=$db->fetchAll($sql2);//Save the total amount of data in the table Go to the rowCount attribute of the paging class
  28. $fenye->rowCount=$rowCount[0]['COUNT(id)'];
  29. $fenye->getLink();
  30. return $fenye->res_arr
  31. }
Copy code


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,

How does session hijacking work and how can you mitigate it in PHP? How does session hijacking work and how can you mitigate it in PHP? Apr 06, 2025 am 12:02 AM

Session hijacking can be achieved through the following steps: 1. Obtain the session ID, 2. Use the session ID, 3. Keep the session active. The methods to prevent session hijacking in PHP include: 1. Use the session_regenerate_id() function to regenerate the session ID, 2. Store session data through the database, 3. Ensure that all session data is transmitted through HTTPS.

Describe the SOLID principles and how they apply to PHP development. Describe the SOLID principles and how they apply to PHP development. Apr 03, 2025 am 12:04 AM

The application of SOLID principle in PHP development includes: 1. Single responsibility principle (SRP): Each class is responsible for only one function. 2. Open and close principle (OCP): Changes are achieved through extension rather than modification. 3. Lisch's Substitution Principle (LSP): Subclasses can replace base classes without affecting program accuracy. 4. Interface isolation principle (ISP): Use fine-grained interfaces to avoid dependencies and unused methods. 5. Dependency inversion principle (DIP): High and low-level modules rely on abstraction and are implemented through dependency injection.

How to debug CLI mode in PHPStorm? How to debug CLI mode in PHPStorm? Apr 01, 2025 pm 02:57 PM

How to debug CLI mode in PHPStorm? When developing with PHPStorm, sometimes we need to debug PHP in command line interface (CLI) mode...

How to automatically set permissions of unixsocket after system restart? How to automatically set permissions of unixsocket after system restart? Mar 31, 2025 pm 11:54 PM

How to automatically set the permissions of unixsocket after the system restarts. Every time the system restarts, we need to execute the following command to modify the permissions of unixsocket: sudo...

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.

How to send a POST request containing JSON data using PHP's cURL library? How to send a POST request containing JSON data using PHP's cURL library? Apr 01, 2025 pm 03:12 PM

Sending JSON data using PHP's cURL library In PHP development, it is often necessary to interact with external APIs. One of the common ways is to use cURL library to send POST�...

See all articles