• 技术文章 >php教程 >PHP源码

    php实现上一篇下一篇的方法总结

    2016-06-08 17:19:52原创641
    php实现上一篇下一篇这个主要是通过sql来根据当前的id来进行判断然后筛选出当前ID之前的数据或ID之后的数据了就这么简单,具体的我们来看看。

    实现网站文章里面上一篇和下一篇的sql语句的写法。

    当前文章的id为 $article_id,当前文章对应分类的id是$cat_id,那么上一篇就应该是:
    代码如下

    SELECT max(article_id) FROM article WHERE article_id < $article_id AND cat_id=$cat_id;

    执行这段sql语句后得到 $max_id,然后

    SELECT article_id, title FROM article WHERE article_id = $max_id;

    简化一下,转为子查询即:

    SELECT article_id, title FROM article WHERE article_id = (SELECT max(article_id) FROM article WHERE article_id < $article_id AND cat_id=$cat_id);

    下一篇为:

    代码如下

    SELECT min(article_id) FROM article WHERE article_id > $article_id AND cat_id=$cat_id;

    执行这段sql语句后得到 $min_id,然后

    SELECT article_id, title FROM article WHERE article_id = $min_id;

    简化一下,转为子查询即:
    代码如下

    SELECT article_id, title FROM article WHERE article_id = (SELECT min(article_id) FROM article WHERE article_id > $article_id AND cat_id=$cat_id);

    最后讲一下有很多朋友喜欢使用下面语句

    上一篇:
    代码如下

    select id from table where id10 limit 0,1;

    这样肯定没有问题,但是是性能感觉不怎么地。

    sql语句优化

    你可以使用union all来实现一条语句取3行数据,但是前提是3个查询的字段要相同

    这个查询出来的结果第一行就是上一篇文章,第二行是当前文章,第三行是下一篇文章
    代码如下

    (select id from table where id < 10 order by id asc limit 1) union all (select id from table where id = 10) union all (select id from table where id > 10 order by id desc limit 1);

    现在来看一些cms中的例子phpcms 实现上一篇下一篇

    获取当前浏览文章id

    $id = isset($_GET['id']) > 0 ? intval($_GET['id']) : "";
    下一篇文章

    $query = mysql_query("SELECT id,title FROM article WHERE id>'$id' ORDER BY id ASC LIMIT 1");
    $next = mysql_fetch_array($query);

    上一篇文章

    $query = mysql_query("SELECT id,title FROM article WHERE id <'$id' ORDER BY id DESC LIMIT 1");
    $prev = mysql_fetch_array($query);



    ">



    ">

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:article id SELECT WHERE FROM
    上一篇:PHP session实现跨子域的几种办法 下一篇:微信公众平台开发通过php创建自定义菜单
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• php CI框架学习笔记-分页实现程序• 简单php文件上传实例• SmartyZip,一个Smarty的装载类• ip 地址详细信息查询程序• php读取远程服务文件
    1/1

    PHP中文网