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


Posted in PHP onSeptember 14, 2016

本文实例讲述了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 相关文章推荐
基于Windows下Apache PHP5.3.1安装教程
Jan 08 PHP
php cout&amp;lt;&amp;lt;的一点看法
Jan 24 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
Apr 07 PHP
解析posix与perl标准的正则表达式区别
Jun 17 PHP
PHP多例模式介绍
Jun 24 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
Apr 28 PHP
50个PHP程序性能优化的方法
Jun 02 PHP
php中JSON的使用与转换
Jan 14 PHP
PHP程序中使用adodb连接不同数据库的代码实例
Dec 19 PHP
使用JavaScript创建新样式表和新样式规则
Jun 14 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
Aug 28 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 PHP
PHP自定义函数格式化json数据示例
Sep 14 #PHP
ThinkPHP中session函数详解
Sep 14 #PHP
PHP大神的十大优良习惯
Sep 14 #PHP
thinkPHP的表达式查询用法详解
Sep 14 #PHP
PHP实现对二维数组某个键排序的方法
Sep 14 #PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 #PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
Sep 14 #PHP
You might like
PHP中ADODB类详解
2008/03/25 PHP
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
2010/12/29 PHP
仿AS3实现PHP 事件机制实现代码
2011/01/27 PHP
php之Memcache学习笔记
2013/06/17 PHP
生成随机字符串和验证码的类的PHP实例
2013/12/24 PHP
PHP 使用redis简单示例分享
2015/03/05 PHP
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
2015/12/14 PHP
php中array_unshift()修改数组key注意事项分析
2016/05/16 PHP
PHP+iframe图片上传实现即时刷新效果
2016/11/18 PHP
php post换行的方法
2020/02/03 PHP
删除重复数据的算法
2006/11/23 Javascript
JavaScript中SQL语句的应用实现
2010/05/04 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
jQuery实现DIV层收缩展开的方法
2015/02/27 Javascript
Vue中父子组件通讯之todolist组件功能开发
2018/05/21 Javascript
浅谈javascript错误处理
2019/08/11 Javascript
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
python读取TXT到数组及列表去重后按原来顺序排序的方法
2015/06/26 Python
python实现windows壁纸定期更换功能
2019/01/21 Python
python实现蒙特卡罗方法教程
2019/01/28 Python
python脚本执行CMD命令并返回结果的例子
2019/08/14 Python
Python使用Tkinter实现滚动抽奖器效果
2020/01/06 Python
python opencv实现简易画图板
2020/08/27 Python
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
Java面试题:Java类的Main方法如果是Private将会怎么样
2016/08/18 面试题
生物技术毕业生自荐信
2013/10/23 职场文书
工业自动化专业毕业生推荐信
2013/11/18 职场文书
单位单身证明范本
2014/01/11 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
2015年社区党务工作总结
2015/04/21 职场文书
离职信范文
2015/06/23 职场文书
Spring Cache和EhCache实现缓存管理方式
2021/06/15 Java/Android