我正在尝试使用 PHP 和 mySQL 制作“历史上的这一天”类型的页面。在 mySQL 数据库中,每个条目都有以下列:id、日期、主题、事件。日期列使用 mySQL 日期类型,即 YYYY-MM-DD。我正在尝试使用 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'];
}
它打印出来的唯一内容是“在当前日期,发生了以下事件:”此外,虽然这不是最重要的,但我当前的日期将在未来的某一天打印出来。
谢谢你的帮助。