お世話になります。
やりたいこと:
イベントのリストから任意の1件を選択表示後、
「前へ」「次へ」 で古い記事 、新しい記事へ移動する。
条件:event_date 順 (event_dateは手入力)
主キー、作成日、更新日 はありますが並びには関係ありません。
質問:日付を遡ったり、進んだり移動するが、レコードの最後までいくと当然表示されない状態で終わる
その先にレコードがない場合「前へ」「次へ」を表示させないための処理がわかりません。
また、このやり方ではできない場合、他に良い方法があれば教えて下さい。
1ページ〇件表示するページャーはサンプル等がたくさん出てきて他のページで利用できました。
よろしくお願いいたします。
<?php if(!empty($_GET['id'])){ // 一覧から選択された場合 $sql = 'SELECT * FROM article where article.id='.$_GET['id'].' AND category="event"'; }elseif(!empty($_GET['do'])){ if($_GET['do'] == "next"){ // 次へが押された場合 $sql = 'SELECT * FROM article where event_date > "'.$_GET['date'].'" AND category="event" ORDER BY event_date ASC LIMIT 1'; }elseif($_GET['do'] == "prev"){ // 前へが押された場合 $sql = 'SELECT * FROM article where event_date < "'.$_GET['date'].'" AND category="event" ORDER BY event_date DESC LIMIT 1'; }else{ // 最新記事が押された場合 $sql = 'SELECT * FROM article where category="event" ORDER BY event_date DESC LIMIT 1'; } } // ~~~~~~~~~~~~~~~~ 省略 ~~~~~~~~~~~~~~~~~~~~~// echo "<div>"; echo '<a href="event.php?do=prev&date='.$result["event_date"].'">«前へ</a> '; echo '<a href="event.php?do=top">最新記事</a>'; echo ' <a href="event.php?do=next&date='.$result["event_date"].'">次へ»</a>'; echo '</div>'; echo '<h2>'.htmlspecialchars($result["title"], ENT_QUOTES).'</h2>'; echo '<p>'.$result["event_date"].'</p>'; $contents = htmlspecialchars($result["contents"], ENT_QUOTES); $contents = nl2br($contents); echo '<div>'.$contents.'</div>';
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/25 06:29