首页站内杂志技术文摘
文章内容页

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

  • 作者:雨祺
  • 来源: 原创
  • 发表于2022-10-11 22:58:58
  • 被阅读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> 
    注:为空就是表示没有了!可以加栏目链接
    【审核人:站长】

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

        本文链接:https://www.meiweny.cn/zazhi/zhongwangjiaocheng/119.html

        赞一下

        深度阅读

        • 您也可以注册成为美文苑的作者,发表您的原创作品、分享您的心情!

        阅读记录

          关注美文苑