我想显示正在过生日的用户的用户名。生日以DATE形式存储在数据库的birthdays
列中。
下面是我当前的代码:
<?php
function birthday_today(){
$current_date = date('m-d');
$row = mysql_query("SELECT `username`, `birthday` FROM `users` WHERE MONTH(birthday) = MONTH(NOW()) AND DAY(birthday) = DAY(NOW())");
if (date('m-d', strtotime($row['birthday'])) == date('m-d')) {
return '<ul><li>' . implode('</li><li>', $row['username'], '</li></ul>');
}
}
echo birthday_today();
?>
然而,这似乎没有回显任何内容。我尝试了几种不同的方法将数据放入echo中,但到目前为止还没有成功。有人能帮我吗?
您需要从结果中提取数组。
$users = array();
$row = mysql_query("SELECT `username`, `birthday` FROM `users` WHERE MONTH(birthday) = MONTH(NOW()) AND DAY(birthday) = DAY(NOW())");
while ($result = mysql_fetch_array($row)) {
if (date('m-d', strtotime($result['birthday'])) == date('m-d')) {
$users[] = $result['username'];
}
}
// output results
echo "<ul>";
foreach ($users as $user) {
echo "<li>".$user['username']."</li>";
}
echo "</ul>"
还有另一种方法:
<?php
// just returns the users having a birthday
function birthday_today() {
$result = mysql_query("SELECT `username` FROM `users` WHERE MONTH(birthday) = MONTH(NOW()) AND DAY(birthday) = DAY(NOW())");
$users = array();
while ($row = mysql_fetch_assoc($result))
$users[] = $row['username'];
return $users;
}
// make a unordered-list out of the users having birthday
$ul = "<ul>";
foreach(birthday_today() as $username)
$ul .= "<li>$username</li>";
$ul .= "</ul>";
echo $ul;
?>