2011-08-11 4 views
0

リストは日付でソートされています。ただし、行には「最優先」とマークを付けることができます。これにより、これらの行は優先順位なしで表示されます。次のSQLは、リストを表示するのに最適です:MySQLの次の項目/前の項目のクエリ - カテゴリ、最初の日付、その後の日付

私は次/前のボタンを表示したいと思います。二つのカテゴリー(優先順位第一)に、私はこのような単純なクエリ(PHP)を使用することはできません。

$next_id = "SELECT id from table WHERE date > $this_items_date" 

私は、現在のIDを知っているとき、次/前のIDを把握することができるだろうか?

答えて

0

オフにする代わりに、行番号で行ってください。結果を出力しているときに、あなたが現在いる行を追跡してください。次に、次/前に単純なSELECT ... ORDER BY ... LIMIT 1,$row+1または$row-1を行うことができます。

+0

ご返信ありがとうございます。 'item.php?id = 30'(etc)への直接リンクが行リスト以外の*他のページからあることに言及するのを忘れてしまいました。だから私はいつも行番号をアイテムページに渡す可能性はない。そして、約10000行(リストは[PEAR Pager](http://pear.php.net/package/Pager)BTWを使用して作成されています)のように、アイテムページのテーブル全体をループするのを避けたいと思います。 – elaxsj

+0

まあ、LIMITを使用すると、制限された行セットのみを表示できます。 "全体的な"レコードセットで現在のページが生成されたオフセットを知っている限り、LIMIT句を適切に開始するように調整できます。そしてmysqlの 'sql_calc_found_rows'を使うと、制限節が存在しない場合に検索される行数を簡単に把握できます。 –

関連する問題