PHPとmySQLを使用して「今日の歴史」タイプのページを作成しようとしています。mySQLデータベースには、エントリごとにid、date、topic、eventの列があります。日付列は、YYYY-MM-DDであるmySQL日付型を使用します。PHPのdate関数を使用して、同じ日付の対応するmySQLエントリを呼び出そうとしていますが、それらを接続する方法がわかりません。
この最初のセクションは、データベースからすべてを正常に返します。
<?php
$config ['db'] = array (
'host' => 'localhost',
'username' => 'root',
'password' => 'root',
'dbname' => 'party'
);
$db = new PDO('mysql:host=' . $config['db']['host'] . ';dbname=' . $config['db']['dbname'] , $config['db']['username'] , $config['db']['password']);
$query = $db->query("SELECT `events`.`date`, `topic`, `event` FROM `events`");
$rows = $query->fetchAll(PDO::FETCH_ASSOC);
echo '<pre>', print_r($rows, true), '</pre>';
ただし、すべてを表示するのではなく、現在の日付と同じ月と日を含む行だけを表示します。単一の行のみを適切にループして表示するにはどうすればよいですか?ここで私は終わりました。
//current day and month
$current_date = date("m d");
//select from database of events where matching month and day
$statement = $db->prepare("SELECT * FROM `events` WHERE `date` = :md ");
$statement->execute(array(':md' => $current_date));
//echo out events that happened throughout history
echo "On ", date('F jS'), ", the following events took place:";
while($rows = $statement->fetch()){
echo $rows['topic'];
echo $rows['event'];
}
印刷されるのは「現在の日付で、次のイベントが発生した」だけです。また、それは最も重要ではありませんが、私の現在の日付は将来の1日で印刷されます。
助けてくれてありがとう。