PHP生日提醒源码

大虾们帮帮忙吧....
Id:编号
Name:姓名
Sex:性别
Bir:生日,格式为1970-07-01
Days:离生日还有几天

要求:
1、 建立一个数据库,保存该会员资料
2、 生成一个静态页面,可以显示会员的资料
3、 能根据上述各个字段,查询会员资料并显示。
比如可以查找“张三”的资料
4、 对7天之内过生日的会员进行提示。

CREATE TABLE `users` (
`id` mediumint(8) unsigned NOT NULL auto_increment,
`username` varchar(60) NOT NULL default '',
`password` varchar(32) NOT NULL default '',
`sex` tinyint(1) unsigned NOT NULL default '0',
`birthday` date NOT NULL default '0000-00-00',
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

index.php
<?php
// mysql连接
$link = mysql_connect('数据库主机:端口', '用户名', '密码');
mysql_select_db('数据库名称', $link);
mysql_query('SET NAMES utf8', $link);

// 取出users列表
$result = mysql_query('SELECT * FROM `users`');
$data = array();
while ($row = mysql_fetch_assoc($result))
{
$data[] = $row;
}

/**
* 自定义函数,验证生日是否提醒,只适用于新历,农历不适用 .
*
* @param string $birthday 出生日期
* @param int $reminder 提醒天数,未来$reminder天内生日提醒
* @return bool true为提醒 false为不提醒
*/
function birthdayReminder($birthday, $reminder = 7)
{
$preg = '/^(\d{4}|\d{2}|)[- ]?(\d{2})[- ]?(\d{2})$/';
$Ymd = array();
preg_match($preg, $birthday, $Ymd);
if (empty($Ymd))
{
return false;
}
var_dump($Ymd);
$birthday = $Ymd[2].'-'.$Ymd[3];
$time = time();
for ($i = 1; $i <= $reminder; $i++)
{
if (date('m-d', $time) == $birthday)
{
return true;
}
$time = $time + 24 * 3600;
}
return false;
}

// 显示users列表
$str = '<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td>ID</td>
<td>UserName</td>
<td>Password</td>
<td>Sex</td>
<td>Birthday</td>
<td>Reminder</td>
</tr>';
foreach($data as $user)
{
$str .= '<tr>
<td>'.$user['id'].'</td>
<td>'.$user['username'].'</td>
<td>'.$user['password'].'</td>
<td>'.$user['sex'].'</td>
<td>'.$user['birthday'].'</td>
<td>';
if(birthdayReminder($user['birthday'])
{
$str .= '生日快到了';
}
else
{
$str .= '生日还遥遥无期呢';
}
$str .= '</td>
</tr>';
}
$str .= '</table>';

print $str;
?>

ps:我敲了一个多小时,不加到100分真不够意思
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-12-03
为何要多一个Days字段呢?
当用户访问这个页面,数据库自动匹配他的出生日期,和当前的日期进行差,如果小于或者等于七天的时间,那么就进行提醒,如果没有就不提醒。
如果新增一个字段,浪费而且不便。