要件
日時指定でデータベースのレコードを切り替える仕組みを作っています。
例えばレコードがid1、id2、id3の3レコードがあったとして
id1 8/20公開
id2 8/24公開
id3 8/27公開(ここのみ予約)
現在8/25なので、今は「id2」のレコードのみ表示させ、
8/27が来たら「id3」のレコードに表示を切り替えたい。
問題点
問題1.SQLのLIMITで1にすると「id3」のレコードがタイマー時刻に達していないため、
何も表示されない状態になる。
問題2.かといってLIMITを2にすると、今は「id2」のレコードのみが表示されるが
日付がきたら「id2」と「id3」の両方が表示されてしまう。
問題3.当然LIMIT指定しないと今の時刻なら「id1」と「id2」、
いずれは全て表示されてしまう
どうすれば、うまくレコードの切り替え表示ができるのでしょうか?
php
1<?php 2 $dsn='mysql:dbname=test2;host=localhost;charset=utf8'; 3 $user='root'; 4 $password=''; 5 $dbh=new PDO($dsn,$user,$password); 6 $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 7 8 $latest_sql = 'SELECT * FROM sample ORDER BY ID DESC LIMIT 1'; 9 $latest_stmt = $dbh->prepare($latest_sql); 10 $latest_stmt->execute(); 11 12 while($latest_rec = $latest_stmt->fetch(PDO::FETCH_ASSOC)){ 13 $latest_release_start = $latest_rec['release_start']; 14 15 $todaytime = new DateTime(); 16 $startTime = new DateTime($latest_release_start); 17 18 if($todaytime >= $startTime){ 19 echo $latest_release_start.'<br>'; 20 } 21 } 22 23 $dbh = null;
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/27 07:26
2018/08/27 07:39