php 上一篇,下一篇文章實現代碼與原理說明

來源:互聯網
上載者:User

實現原理:

就是對id對進行order by id desc 或 order by id asc進行排序,然後再判斷比當前id> or小於當前文章id的相同欄目的文章。
執行個體的sql語句如下:

$id就是當面文章的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

--
-- 表的結構 `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 ;

--
-- 匯出表中的資料 `string_find`
--

INSERT INTO `string_find` (`id`, `charList`) VALUES
(1, '指令碼之家'),
(2, 'baidu'),
(5, 'www.baidu.com'),
(6, 'www.jb51.net');

好了萬事俱備了,下面來看一下操作方法

複製代碼 代碼如下:mysql_connect('localhost','root','root') or die(mysql_error());
mysql_select_db('cc');
mysql_query("set names 'gbk'");
$cid =5;//是你當前文章的編號
$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 "沒有了";
}

以下是別的網友寫的文章。
由於我希望訪客在瀏覽網頁的時候需要看到上一主題,下一主題的標題,所以必定是要在資料庫中查詢出來的了,可以通過limit限制來取,比如,我的部落格是按照ID自動增量的,那麼可以通過尋找大於或者小於當前ID來取

$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";

再通過查詢,取出資料
如果只是單一的"上一篇","下一篇"那麼就沒有必要查詢了,這樣是不必查詢了,但也許使用者點擊之後會看到,這已經是首頁了或者這已經是末頁了,呵呵 複製代碼 代碼如下: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;
}

通過傳遞一個動作來實現上一主題,下一主題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.