DBのtableの設計で
id,
name,
body,
date datetime
とdateに関してはdatetime型とし、date('Y-m-d H:i:s);
で値を飛ばして保存しています。
ただdateを抽出してから、分解するのは下記のコードを見つけたのでやってみました。
PHP
1while ($row = $stmt->fetch()) : 2 $datetime = $row['date']; 3 list ($year, $month, $day, $hour, $minutes, $second) = preg_split('/[-: ]/', $datetime);
ここからが本題の質問になりますが、
日付で検索するのに、どのような形になるのか?お聞きしたいと思います。
PHP
1// 年月日で検索するフォーム 2<select name="year"> 3<select name="month"> 4<select name="day"> 5<input type="submit" value="検索"> 6// 間はもう省略しております。 7 8// POSTの受取 9$year = $_POST['year']; 10$month = $_POST['month']; 11$day = $_POST['day']; 12 13// DB 14$dbh = connectDb(); 15$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 16$stmt = $dbh->prepare( 17 "SELECT * FROM テーブル ORDER BY name WHERE date = ?"); 18 19// 問題の箇所、、、 20POSTの値をdateにまとめて?$dateとして送る? 21すみません、動き的な部分などわかっていないので、、、 22 23$stmt->execute();
要するに、時間は関係なく、検索したい年月日を入れるとその年月日に合うデータを抽出したいのですが、datetimeだった時のがよくわかっていません。
よろしくお願いします。
自分の浅い考えですが、
$date1 = $year $month $dayと
$date2 = $year $month $day +1
みたいので、date1からdate2っていう範囲選択をする感じになるのでしょうか?
追記
PHP
1$serch_time = $year . '/' . $month . '/' . $day; 2省略 3("SELECT * FROM テーブル ORDER BY name ASC WHERE CAST(period_dttm AS DATE) = ?"); 4 5$stmt->bindValue(1, $serch_time, PDO::PARAM_STR);
一応、2016/03/05のような感じにはしたのですが、エラーがでております。。。。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/05 08:57
2016/03/05 11:50
2016/03/05 12:29
2016/03/05 12:42