Maison développement back-end tutoriel php php分页代码示例及在ZF中的使用

php分页代码示例及在ZF中的使用

Jul 25, 2016 am 08:52 AM

  1. $nav='';//用来保存页数的一个变量
  2. for ($i=1;$i{
  3.   $nav.="第".$i."页 ";
  4. }
复制代码

以上的for循环将输出如 第1页,第2页,第3页,第4页,第5页,第6页,第7页,第8页,第9页,第10页,第11页,第12页,第13页 如果我们只想每次只显示十个页面呢?比如1-10页,11-20页 稍微修改下for循环即可:

  1. $step= floor(($pageNow-1)/10)*10+1;
  2. for ($i=$step;$i{
  3.   $nav.="第".$i."页 ";
  4. }
复制代码

比如,当前页面$pageNow如何在1~10之间的话,那么$step=0 当前页面$pageNow如何在11~20之间的话,那么$step=10 当前页面$pageNow如何在21~30之间的话,那么$step=20 参考具体的实现过程的代码,我们不难发现,for循环的第二个条件只需要加上10就可以实现每次只显示10也的情况了,我们将这一步分装在fenyePage类中的getLink()方法中 话又说回来,如何才能得到$pageSize和$rowCount两个变量的值呢? $pageSize可以又程序员自己指定,$rowCount可以借助一个简单的执行sql语句的函数就能得到

  1. /**
  2. * $sql语句:①获取数据②获取总记录数
  3. */
  4. class fenyePage{
  5. public $pageSize=5;//每页显示的数量-->程序员指定的
  6. public $rowCount;//这是从数据库中获取的(形如SELECT COUNT(id) FROM TABLE)用来保存总共有多少条记录
  7. public $pageNow;//通过$_GET['page']获取的,用来保存当前所在的页码
  8. public $pageCount;//计算得到的,用来保存总共有多少页
  9. public $res_arr;//用来保存要显示到页面的数据(比如保存SELECT * FROM TABLE LIMIT 0,10 检索的数据)
  10. public $nav;//显示第几页第几页的导航条
  11. /**
  12. * 取得当前页面的超链接
  13. *
  14. * @author 小飞 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.=" ";//整体每10页向前翻
  24. }
  25. if ($this->pageNow!=1)
  26. {
  27. $this->nav.=" 上一页 ";
  28. }
  29. if ($this->pageNow!=1)
  30. {
  31. $this->nav.="首页 ";
  32. }
  33. for ($start=$step;$startpageCount;$start++)
  34. {
  35. $this->nav.="".$start." ";
  36. }
  37. if ($this->pageNow!=$this->pageCount)
  38. {
  39. $this->nav.="末页 ";
  40. }
  41. if ($this->pageNow!=$this->pageCount)
  42. {
  43. $this->nav.=" 下一页";
  44. }
  45. if ($this->pageCount>10 && $this->pageNowpageCount-8){
  46. $this->nav.=" >> ";//整体每10页向后翻
  47. }
  48. $this->nav.="/共有".$this->pageCount."页";
  49. }
  50. }
  51. ?>
复制代码

由于zf中操作数据库的任务由model层来完成,所以,我将获取$rowCount的值的函数放在了对应的表model中 比如:我是操作order表的 那么当我要显示所有订单信息的时候,我通过order类中的showorder()方法取得$rowCount的值,并将其付给分页类中的$rowCount属性 同样,将要显示在页面上的数据信息也一并付给了分页类中的$res_arr属性 这样,我们就可以很容易的通过实例化一个分页类(fenyePage),然后将其通过参数传给showorder()函数,由该函数完成以下动作: ①要显示在页面上的信息 ②表中总共有多少条记录

  1. /**
  2. * 根据指定的用户id,查询该用户的历史订餐记录
  3. *
  4. * @author 小飞 2012/5/30
  5. * @param $id 用户id
  6. * @param $fenye 实例化的一个对象,用来处理分页
  7. * @todo $sql1语句 "select * from table where * limit 0,10" 该sql语句主要用来检索数据库中的数据,用以显示在view层
  8. * @todo $sql2语句 "select count(id) from table" 该sql语句用来得出总的数据量
  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. //该sql语句主要用来计算总的数据量
  25. $sql2="SELECT COUNT(id) FROM `order`";
  26. $fenye->res_arr=$db->fetchAll($sql1);//将要显示的数据存储到分页类的$res_arr属性当中,方便调用
  27. $rowCount=$db->fetchAll($sql2);//将表中的总数据量保存到分页类的rowCount属性当中
  28. $fenye->rowCount=$rowCount[0]['COUNT(id)'];
  29. $fenye->getLink();
  30. return $fenye->res_arr
  31. }
复制代码


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Comment fonctionne le détournement de session et comment pouvez-vous l'atténuer en PHP? Comment fonctionne le détournement de session et comment pouvez-vous l'atténuer en PHP? Apr 06, 2025 am 12:02 AM

Le détournement de la session peut être réalisé via les étapes suivantes: 1. Obtenez l'ID de session, 2. Utilisez l'ID de session, 3. Gardez la session active. Les méthodes pour empêcher le détournement de la session en PHP incluent: 1. Utilisez la fonction Session_RegeReate_id () pour régénérer l'ID de session, 2. Stocker les données de session via la base de données, 3. Assurez-vous que toutes les données de session sont transmises via HTTPS.

Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Apr 03, 2025 am 12:04 AM

L'application du principe solide dans le développement de PHP comprend: 1. Principe de responsabilité unique (SRP): Chaque classe n'est responsable d'une seule fonction. 2. Principe ouvert et ferme (OCP): les changements sont réalisés par extension plutôt que par modification. 3. Principe de substitution de Lisch (LSP): les sous-classes peuvent remplacer les classes de base sans affecter la précision du programme. 4. Principe d'isolement d'interface (ISP): utilisez des interfaces à grain fin pour éviter les dépendances et les méthodes inutilisées. 5. Principe d'inversion de dépendance (DIP): les modules élevés et de bas niveau reposent sur l'abstraction et sont mis en œuvre par injection de dépendance.

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Mar 31, 2025 pm 11:54 PM

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Comment déboguer le mode CLI dans phpstorm? Comment déboguer le mode CLI dans phpstorm? Apr 01, 2025 pm 02:57 PM

Comment déboguer le mode CLI dans phpstorm? Lors du développement avec PHPStorm, nous devons parfois déboguer PHP en mode interface de ligne de commande (CLI) ...

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Apr 01, 2025 pm 03:12 PM

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...

See all articles