技术文摘

帝国巧用数组查询上一篇下一篇(此举能减少SQL查询)

作者:雨祺   发表于:
浏览:48次    字数:869  原创
级别: 站长   总稿: 69 篇,  月稿: 0
帝国巧用数组查询上一篇下一篇(此举能减少SQL查询)上一篇和下一篇,最多两条,最少一条 有UNION呢?合并语法,减少一个查询,执行时间会变长一点,相对于两个查询还是更划算的,下面开始上代码:
  1. <?php 
  2. $goPage = [ 
  3.         'prev'        => ['text' => '上一篇'], 
  4.         'next'         => ['text' => '下一篇'], 
  5. ]; 
  6. $sql = $empire->query("(SELECT titleurl, id, title FROM `{$dbtbpre}ecms_news` WHERE `id` < " . $navinfor['id'] . " AND `classid` = " . $navinfor['classid'] . " ORDER BY `id` DESC LIMIT 1) UNION (SELECT titleurl, id, title FROM `{$dbtbpre}ecms_news` WHERE `id`> " . $navinfor['id'] . " AND `classid` = " . $navinfor['classid'] . " ORDER BY `id` LIMIT 1)"); 
  7. if(0 < $empire->num1($sql)) { 
  8.         while($r = $empire->fetch($sql)){ 
  9.         $key = $r['id'] > $navinfor['id'] ? 'next' : 'prev'
  10.         $goPage[$key]['title']                 = $r['title']; 
  11.         $goPage[$key]['titleurl']         = sys_ReturnBqTitleLink($r); 
  12.         } 
  13. ?> 
显示页码
  1. <nav class="blog-pagination" aria-label="Pagination"
  2.                 <?php foreach($goPage as $type => $page):?> 
  3.                 <a class="btn btn-lg<?php echo !isset($page['title']) ? ' btn-outline-secondary disabled': ' btn-outline-danger';?> me-2" href="<?php echo $page['titleurl'] ?? '';?>"><?php echo $page['text'];?></a> 
  4.                 <?php endforeach;?> 
  5.             </nav> 
注:为空就是表示没有了!可以加栏目链接

【审核人:站长】

收藏   加好友   生成海报   分享
点赞(0)
打赏
Tags: 数组 帝国CMS 帝国

发布者资料

热门文章

技术文摘

查看更多技术文摘
首页
栏目
搜索
会员
投稿