前に会社で作成したCMSで色々なデータを入力、管理できるものを作成したのですが、
そのCMSで入力したデータ内から、前日入力した件数を表示させたいという依頼がありました。
ぶっちゃけ簡単だろうと思ってましたが・・・
まず前日のデータを取得するために、前日の日付を取得することからはじめます!
徐にブラウザを立ち上げ、Google先生に質問します「PHP 昨日の日付」・・・
色々な方法があるんですね!
正直自分にはどれが一番良い方法なのかは分からないですが、ここでは下記の様に取得しました。
$zenjitu = date(“Ymd”,strtotime(“-1 day”));
date関数とstrtotime関数を使って昨日の日付を取得しました。
とりあえずテストとして表示させてみる。
print $zenjitu; → 20120210
ちゃんと前日の日付が8桁の数字で表示されました!
あとは簡単!sqlで取得した前日の日付のデータのものを引っ張ってくるだけです。
$sql = “select * from テーブル名 where 日付フィールド名 = ‘$zenjitu’”;
ちょろいもんだぜ!
なんて余裕をかます間もなくおかしい・・・
あれ?何でだ?
調べてみたら、日付フィールドはdatetime型でした。
2012-02-10 10:32:18 ← こんな感じで保存されてました。
少し前に作成したシステムでは日付を8桁の数字で登録していたので気づきませんでした。
これに伴い下記の様に修正。
$zenjitu = date(“Y-m-d”,strtotime(“-1 day”));
$sql = “select * from テーブル名 where 日付フィールド名 like ‘$zenjitu%’”;
今度はばっちり成功でした!
普段あまりSQLを打つ事が少ないので色々忘れてしまっています。
今回の、「あいまい検索 前方一致」もその一つでした。
以前どこかで使った記憶はあるのですが、いつどこで使ったのかも、まさに「あいまい」!
でも今回のこの記事で一生忘れないはず!
多分・・・