php 上一篇,下一篇文章實(shí)現(xiàn)代碼與原理說(shuō)明
就是對(duì)id對(duì)進(jìn)行order by id desc 或 order by id asc進(jìn)行排序,然后再判斷比當(dāng)前id> or小于當(dāng)前文章id的相同欄目的文章。
實(shí)例的sql語(yǔ)句如下:
$id就是當(dāng)面文章的id
select * from news where id<$id order by id desc limit 0,1
select * from news where id>$id order by id desc limit 0,1
--
-- 表的結(jié)構(gòu) `string_find`
--
CREATE TABLE IF NOT EXISTS `string_find` (
`id` int(4) NOT NULL auto_increment,
`charList` varchar(100) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;
--
-- 導(dǎo)出表中的數(shù)據(jù) `string_find`
--
INSERT INTO `string_find` (`id`, `charList`) VALUES
(1, '腳本之家'),
(2, 'baidu'),
(5, 'www.baidu.com'),
(6, 'www.dbjr.com.cn');
好了萬(wàn)事俱備了,下面來(lái)看一下操作方法
mysql_connect('localhost','root','root') or die(mysql_error());
mysql_select_db('cc');
mysql_query("set names 'gbk'");
$cid =5;//是你當(dāng)前文章的編號(hào)
$sql ="select * from string_find where id>$cid order by id desc limit 0,1"; //上一篇文章
$sql1 ="select * from string_find where id<$cid order by id asc limit 0,1";//下一篇文章
$result = mysql_query( $sql );
if( mysql_num_rows( $result ) )
{
$rs = mysql_fetch_array( $result );
echo "上一篇".$rs[0];
}
else
{
echo "沒有了";
}
$result1 = mysql_query( $sql1 );
if( mysql_num_rows( $result1 ) )
{
$rs1 = mysql_fetch_array( $result1 );
echo "下一篇".$rs1[0];
}
else
{
echo "沒有了";
}
以下是別的網(wǎng)友寫的文章。
由于我希望訪客在瀏覽網(wǎng)頁(yè)的時(shí)候需要看到上一主題,下一主題的標(biāo)題,所以必定是要在數(shù)據(jù)庫(kù)中查詢出來(lái)的了,可以通過limit限制來(lái)取,比如,我的博客是按照ID自動(dòng)增量的,那么可以通過查找大于或者小于當(dāng)前ID來(lái)取
$UpSQL="SELECT * FROM `blog` WHERE `ID`<$id ORDER BY `ID` DESC LIMIT 0,1";
$DownSQL="SELECT `ID`,`Title` FROM `blog` WHERE `ID`> $id ORDER BY `ID` ASC LIMIT 0,1";
再通過查詢,取出數(shù)據(jù)
如果只是單一的"上一篇","下一篇"那么就沒有必要查詢了,這樣是不必查詢了,但也許用戶點(diǎn)擊之后會(huì)看到,這已經(jīng)是首頁(yè)了或者這已經(jīng)是末頁(yè)了,呵呵
switch($act) {
case "Up":
$SQL="SELECT * FROM `blog` WHERE `ID`< $id ORDER BY `ID` DESC LIMIT 0,1";
break;
case 'Down':
$SQL="SELECT * FROM `blog` WHERE `ID`> $id ORDER BY `ID` ASC LIMIT 0,1";
break;
default :
$SQL="SELECT * FROM `blog` WHERE `ID`= $id LIMIT 0,1";
break;
}
通過傳遞一個(gè)動(dòng)作來(lái)實(shí)現(xiàn)上一主題,下一主題
相關(guān)文章
Laravel中擴(kuò)展Memcached緩存驅(qū)動(dòng)實(shí)現(xiàn)使用阿里云OCS緩存
這篇文章主要介紹了Laravel中擴(kuò)展Memcached緩存驅(qū)動(dòng)實(shí)現(xiàn)使用阿里云OCS緩存,本文擴(kuò)展了一個(gè)支持SASL 認(rèn)證模式的Memcached緩存驅(qū)動(dòng),需要的朋友可以參考下2015-02-02PHP pthreads v3下的Volatile簡(jiǎn)介與使用方法示例
這篇文章主要介紹了PHP pthreads v3下的Volatile簡(jiǎn)介與使用方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了PHP pthreads v3下Volatile的功能、原理、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2020-02-02PHP+JS三級(jí)菜單聯(lián)動(dòng)菜單實(shí)現(xiàn)方法
這篇文章主要介紹了PHP+JS三級(jí)菜單聯(lián)動(dòng)菜單實(shí)現(xiàn)方法,涉及JavaScript動(dòng)態(tài)控制頁(yè)面樣式及PHP數(shù)據(jù)庫(kù)操作相關(guān)技巧,需要的朋友可以參考下2016-02-02介紹幾個(gè)array庫(kù)的新函數(shù) php
介紹幾個(gè)array庫(kù)的新函數(shù) php...2006-12-12PHP進(jìn)階學(xué)習(xí)之命名空間基本用法分析
這篇文章主要介紹了PHP進(jìn)階學(xué)習(xí)之命名空間基本用法,簡(jiǎn)單分析了php命名空間的基本概念、功能并結(jié)合實(shí)例形式描述了命名空間的用法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-06-06javascript+php實(shí)現(xiàn)根據(jù)用戶時(shí)區(qū)顯示當(dāng)?shù)貢r(shí)間的方法
這篇文章主要介紹了javascript+php實(shí)現(xiàn)根據(jù)用戶時(shí)區(qū)顯示當(dāng)?shù)貢r(shí)間的方法,實(shí)例分析javascript獲取客戶端時(shí)區(qū)及與服務(wù)器端php交互的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03一些需要禁用的PHP危險(xiǎn)函數(shù)(disable_functions)
有時(shí)候?yàn)榱税踩覀冃枰粢恍㏄HP危險(xiǎn)函數(shù),整理如下需要的朋友可以參考下2012-02-02PHP中使用SimpleXML檢查XML文件結(jié)構(gòu)實(shí)例
這篇文章主要介紹了PHP中使用SimpleXML檢查XML文件結(jié)構(gòu)實(shí)例,本文講解使用SimpleXML來(lái)檢查一個(gè)XML文件是否符合規(guī)范的方法,需要的朋友可以參考下2015-01-01