PHP简单实现上一页下一页功能示例

本文实例讲述了PHP简单实现上一页下一页功能。分享给大家供大家参考,具体如下:

思路整理:

现在好多人用id的增1和减1实现上一篇和下一篇,但是难道文章ID不会断了吗?所以你要知道上个ID和个ID是多少就OK了。

那怎么解决这个问题呢,很简单!

例子:

假如这篇文章的ID200

<a href="?action=up&id=200">上一篇</a>
<a href="?action=down&id=200">下一篇</a>

如果是实现上一篇就在action=up页面写函数

$id= $_GET['id'];
//上一篇:
$sql= select * from article where id < '.$id.' order by id desc limit 0,1';
$rs= mysql_query($sql);
$row= mysql_fetch_array ($rs);
//下一篇:
$sql= select * from article where id < '.$id.' order by id asc limit 0,1';
$rs= mysql_query($sql);
$row= mysql_fetch_array ($rs);

原理,查询比当前ID小(where id < '.$id.'上一篇)和比当前ID大(where id > '.$id.'下一篇)的1条(limit 0,1)数据,并按降序(desc,上一篇)和升序(asc,下一篇)显示出来,当只取一篇的时候,可以省略降序或升序。

具体实现代码:注需要传递参数

前台在上一篇,下一篇处调用:

<?php
 echo GetPreNext(pre,news,$_REQUEST[catid],$_REQUEST[id]);?>
//显示上一篇下一篇
 function GetPreNext($gtype,$table,$catid,$id){
 $preR=mysql_fetch_array(mysql_query("select * from ".$table." where catid=".$catid." and id<$id order by id desc limit 0,1"));//id比传入id小的最近一条
 $nextR=mysql_fetch_array(mysql_query("select * from ".$table." where catid=".$catid." and id>$id order by id asc limit 0,1"));//id比传入id大的最近一条
  $next = (is_array($nextR) ? " where id={$nextR['id']} " : ' where 1>2 ');
  $pre = (is_array($preR) ? " where id={$preR['id']} " : ' where 1>2 ');
   $query = "Select * from ".$table." ";
      $nextRow =mysql_query($query.$next);
      $preRow = mysql_query($query.$pre);
      if($PreNext=mysql_fetch_array($preRow))
      {
       echo $PreNext['pre'] = "上一篇:<a href='newsshow.php?id=".$preR['id']."&&catid=".$catid."'>".$PreNext['title']."</a> ";
      }
      else
      {
       echo $PreNext['pre'] = "上一篇:没有了 ";
      }
      if($PreNext=mysql_fetch_array($nextRow))
      {
       echo $PreNext['next'] = "下一篇:<a href='newsshow.php?id=".$nextR['id']."&&catid=".$catid."'>".$PreNext['title']."</a> ";
      }
      else
      {
        echo $PreNext['next'] = "下一篇:没有了 ";
      }
}

代码经测试可用

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php常见数据库操作技巧汇总》、《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《php正则表达式用法总结》、《PHP运算与运算符用法总结》及《php字符串(string)用法总结》

希望本文所述对大家PHP程序设计有所帮助。

(0)

相关推荐

  • php jquery 实现新闻标签分类与无刷新分页

    现在jquery的应用越来越广泛了,在很多网站的新闻板块都实现了 标签分类 + 无刷新分页 的效果. 也自己尝试写了一个,效果图如下(样式可以按用户需求自己去整): 接下来详细介绍实现过程: 我一向是见招拆招的解决思路,这里需要运用到3个东西--标签页效果插件和分页插件,jquery的getJson请求. 因此我使用了jquery-ui插件,jquery-page插件,现提供下载地址: jquery_all.rar 里面包含了3个JS脚本文件和2个样式表:jquery-1.3.2.min.jsj

  • thinkphp实现数组分页示例

    在thinkphp的框架下实现分页.公司的网站基于Thinkphp框架,一直久闻thinkphp的大名,终于有机会实战了.thinkphp是MVC架构的,MVC对于任何ITers来说都不陌生,模型(model)-视图(view)-控制器(controller).他将逻辑和数据分开处理,少了很多繁琐的过程.其实在官方的资料中已经详细的介绍了怎么分页,传送门:http://document.thinkphp.cn/manual_3_2.html#data_page 可是并不适用于数据已经从DB中取出

  • php获取文章上一页与下一页的方法

    本文实例讲述了php获取文章上一页与下一页的方法.分享给大家供大家参考.具体方法如下: 今天发现一个站的上一页与下一页出现问题,上一页没有问题但是在下一页是直接到了本频道最新发布的文章了,按原理应该是文章本身ID的前与后的ID才是上下页吧,下面我来与大家详细讲述一下. 先看个例子:1,2,3,4,5. 假如上面5个是ID了,我要对上一页排序直接使用order by id desc,如我当前ID为3那么出来的是2才对,对下一页我们要用order by id asc得出的排序应该是,4,好了原理就这

  • php实现的漂亮分页方法

    分页页码显示算法 复制代码 代码如下: /**  * 获取分页的HTML内容  * @param integer $page 当前页  * @param integer $pages 总页数  * @param string $url 跳转url地址    最后的页数以 '&page=x' 追加在url后面  *   * @return string HTML内容;  */ public static function getPageHtml($page, $pages, $url){  //最

  • php+mysql分页代码详解

    复制代码 代码如下: <?php    $perpagenum = 10;//定义每页显示几条    $total = mysql_fetch_array(mysql_query("select count(*) from a"));//查询数据库中一共有多少条数据    $Total = $total[0];                          //    $Totalpage = ceil($Total/$perpagenum);//上舍,取整    if(!i

  • php,ajax实现分页

    自己总结了些屁经验 1.用ajax post数据到后台页面后,接着要重新连接数据库,别以为用之前的session连接过就可以了 2.为了处理返回乱码的问题,我添加了header("Content-Type:text/html;charset=GB2312");就可以正常显示了,后来在firefox下检验,却提示我下载这个网页,上网搜了不少资料,得到一个模糊的认识就是网页代码有语法错误,firefox为了安全起见不会直接显示而是提示下载,我重新检查了刚才那条语句,发现自己多写了个&quo

  • ThinkPHP分页类使用详解

    一.首先需要在MsgManage控制器中加入分页方法 知识点:1.count函数的试用2.Page类实例化操作及相关参数了解3.limit函数了用4.show函数了解 编辑文件admin/Lib/Action/MsgManageAction.class.php 代码如下: 复制代码 代码如下: class MsgManageAction extends CommonAction {    public function index(){     import('ORG.Util.Page'); 

  • ThinkPHP 3.2 数据分页代码分享

    TP3.2框架手册,有一个数据分页,不过每次都要写太多的代码,还有中文设置等有些麻烦,做为程序开发者,有必要整理下: O.先看效果图 一.分页方法 复制代码 代码如下: /**  * TODO 基础分页的相同代码封装,使前台的代码更少  * @param $m 模型,引用传递  * @param $where 查询条件  * @param int $pagesize 每页查询条数  * @return \Think\Page  */ function getpage(&$m,$where,$pa

  • php 分页原理详解

    在看本文之前,请确保你已掌握了PHP的一些知识以及MYSQL的查询操作基础哦. 作为一个Web程序,经常要和不计其数的数据打交道,比如会员的数据,文章数据,假如只有几十个会员那很好办,在一页显示就可以了,可是假如你的网站是几千甚至几十万会员的话,如果都在一页打开的话无论对浏览器还是观看者都是一种折磨,而且如果数据上亿,从数据库里查询一次的话,对服务器的压力是很大的,这不是正确的方法. 相信每个学习PHP的新手都会对分页这个东西感觉很头疼,不过有了默默的这一水帖,你肯定会拍拍脑袋说,嘿,原来分页竟

  • PHP分页函数代码(简单实用型)

    准备数据: 新建一个数据库 test 执行下面的语句(新建一个表 test :id.sex.name 三个字段) CREATE TABLE `test` ( `id` INT( 4 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `sex` INT( 1 ) NOT NULL , `name` VARCHAR( 20 ) NOT NULL ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_bin; 添加数据到 te

随机推荐