PHP的开放时间和使馆假期
|
我一直在使用以下代码:
$rawsql = \"SELECT
*
FROM
_erc_foffices n
INNER JOIN
_erc_openings o ON n.id = o.branch_id AND o.dotw = DAYOFWEEK(CURRENT_DATE())
INNER JOIN
_erc_openings_times t ON o.id = t.opening_id
WHERE
(
UNIX_TIMESTAMP(CURRENT_TIMESTAMP()) BETWEEN UNIX_TIMESTAMP(CONCAT(CURRENT_DATE(), \' \', t.open)) AND UNIX_TIMESTAMP(CONCAT(CURRENT_DATE(), \' \', t.close))
)
AND
(
n.id = %d
)
;\";
$sql = sprintf($rawsql, mysql_real_escape_string($id));
$result = mysql_query($sql);
/*These if & while statements decide whether or not the information should be displayed. If no results are returned from the query above then an alternative message is shown.*/
if(mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo \"<div class=\'address\'><p>\" . $row[\"title\"] . \"<br/>\";
echo $row[\"address_1\"] . \"<br/> \" . $row[\"address_2\"] . \"<br/> \" . $row[\"address_3\"] . \"<br/> \" . $row[\"address_4\"] . \"<br/> \" . $row[\"address_5\"] . \"</p>\";
echo \"<div class=\'buttons\'><img src=\'http://localhost/erc/images/texttouser_button.png\'/><br/><a href=\'\" . $row[\"url\"] . \"\' target=\'blank\'><img src=\'http://localhost/erc/images/website_button.png\'/></a></div></div>\";
echo \"<div class=\'email\'>\" . $row[\"email\"] . \"</div>\";
$extra_notes = $row[\"extra\"];
}
} else {
$embassy_closed = mysql_query(\"SELECT * FROM _erc_foffices WHERE id = \'$embassy_id\'\");
while($row = mysql_fetch_array($embassy_closed))
{
echo \"<div class=\'address\'><p>\" . $row[\"title\"] . \"<br/>\";
echo $row[\"address_1\"] . \"<br/> \" . $row[\"address_2\"] . \"<br/> \" . $row[\"address_3\"] . \"<br/> \" . $row[\"address_4\"] . \"<br/> \" . $row[\"address_5\"] . \" <font color=\'red\'>The embassy is closed.</font></p>\";
echo \"<div class=\'buttons\'><img src=\'http://localhost/erc/images/texttouser_button.png\'/><br/><a href=\'\" . $row[\"url\"] . \"\' target=\'blank\'><img src=\'http://localhost/erc/images/website_button.png\'/></a></div></div>\";
echo \"<div class=\'email\'>\" . $row[\"email\"] . \"</div>\";
$extra_notes = $row[\"extra\"];
}
}
它从数据库中获取使馆的开放时间,并确定使馆当前是否开放。如果不是,则会显示一条消息,说明“使馆已关闭”。现在,我需要添加公共假期,因此我将查询更改为如下所示:
$rawsql = \"SELECT
*
FROM
_erc_foffices n
INNER JOIN
_erc_openings o ON n.id = o.branch_id AND o.dotw = DAYOFWEEK(CURRENT_DATE())
INNER JOIN
_erc_openings_times t ON o.id = t.opening_id
LEFT JOIN
_erc_holidays h ON h.branch_id = n.id
WHERE
(
UNIX_TIMESTAMP(CURRENT_TIMESTAMP()) BETWEEN UNIX_TIMESTAMP(CONCAT(CURRENT_DATE(), \' \', t.open)) AND UNIX_TIMESTAMP(CONCAT(CURRENT_DATE(), \' \', t.close))
)
AND
(
n.id = %d
)
AND
(
UNIX_TIMESTAMP(CURRENT_TIMESTAMP())
NOT BETWEEN UNIX_TIMESTAMP(h.begins_at) AND UNIX_TIMESTAMP(h.ends_at)
)
;\";
但这只会输出两次地址/电子邮件等。
有人可以指出我做错了什么吗?
谢谢你的帮助
编辑:我现在已经解决了这个问题,只是使用了第二个查询和if / else循环。
没有找到相关结果
已邀请:
2 个回复
香腔弥胯瓤
薄响