2011-01-07 6 views
1

私はさまざまなカテゴリの記事を一覧表示する簡単な記事のウェブサイトを構築しました。私は訪問者が記事リストを閲覧できるシンプルなページネーションシステムを実装しました。しかし、クライアントには別の要件があります。彼らは記事を読むときに[記事リストページにはない]記事リストの次/前の記事にリンクする '次の記事'と '前の記事'のリンクが必要です。PHPベースのCMSで次の単一の記事ナビゲータを追加する必要があります

リストを別々に並べ替えることができるので、個々の記事を読むための次のリンクと前のリンクもこれをどのように実装できるかを反映する必要があります。私が信じているミニページネーションのようなものです。

特に、1つのタプルを選択すると、次の行と前の行を1つのSQLクエリで取得できますか?

答えて

2
Previous ID: 
SELECT id FROM $mytable WHERE id < $id ORDER BY ID DESC LIMIT 1; 
Next ID: 
SELECT id FROM $mytable WHERE id > $id ORDER BY ID ASC LIMIT 1; 

と$ IDの後にあなたがあなたのページ で使用しているあなたのフィルタを追加する必要があります:)

+0

私は1つのSQLクエリを使用して実行できるものを探しています – Ali

0
SELECT id FROM $mytable WHERE id < $id ORDER BY ID DESC LIMIT 1; 
UNION 
SELECT id FROM $mytable WHERE id = $id ORDER BY ID ASC LIMIT 1; 
UNION 
SELECT id FROM $mytable WHERE id > $id ORDER BY ID ASC LIMIT 1; 

あなたはすべてを実行するために探している場合あなたはすべての3つのIDの

0

を取得します1つのSQL行でリストを異なる方法でソートできると考えている場合は、SESSION/COOKIEを使用してSQL行をサブミットして格納する必要があります。次に、@Eddsstudioが次に示唆したものにWHEREの後に条件を追加することができます:

SELECT id FROM $mytable WHERE id < $id ORDER BY ID DESC LIMIT 1; 
Next ID: 
SELECT id FROM $mytable WHERE id > $id ORDER BY ID ASC LIMIT 1;