1

SQLにYmdとして保存されている日付に基づいてページにプルしたいSQLデータベースに一連のレコードを保存するサイトがあります。ただし、日ごとに結果をページ分割したいと思います。

したがって、インデックスについては、今日のすべての結果を表示したいと思います。この場合、クエリのWHEREとしてphp date()関数を使用します。しかし、私はページネーションを行うことに問題を抱えています。getを使用して次のページに移動するボタンを下部に配置したいので、index.php?page = 2は明日ですが、WHEREのデータベースから「明日」を確実に選択する方法がわかりません。

ほら、私はdate( "U")を使用して、最初のページの最初の日のUNIX時間を取得し、次のページの日付をインクリメントするために3600 * $ _GET['page']を追加しました。しかし、それは私を台無しにするかもしれないそれをするためのずさんな方法のように思えます。これが唯一の方法ですか、それともより良い、より実用的な解決策がありますか?多くの人に感謝します。

4

3 に答える 3

1

ページ 2 が明日の場合、次のようになります。

$days_ahead = $page - 1;
$query = "... WHERE date = DATE(NOW()) + INTERVAL $days_ahead DAY ...";

これは最初のページでも問題なく機能することに注意してください ($page がデフォルトで 1 に設定されていると仮定すると)、今日の日付に 0 日が追加されます。

于 2009-02-18T16:07:33.943 に答える
0

これは私が自分のサイトのためにそれを修正する方法です

//'page' is a GET variable from url
if($page<=1) {
  $datemax = time();
  $datemin = time() - (1 * 2592000); //2592000 being seconds in a month
}
else{
  $datemax = time() - (($page - 1) * 2592000);
  $datemin = time() - ($page * 2592000);
}

そして明らかに、クエリは次のようになります

SELECT * FROM posts WHERE dateposted >=$datemin AND dateposted <=$datemax
于 2014-05-12T11:22:13.187 に答える
0

strtotime で実験します。

$sqldate = date('Y-m-d', strtotime('+2 days'));
于 2009-02-18T16:08:05.627 に答える