当前位置:数据分析 > PHP 的开放时间让馆放假

PHP 的开放时间让馆放假

  • 发布:2023-10-05 08:33

| 我一直在使用以下代码:
 $rawsql = \"选择
*
从
    _erc_f 办公室 n
内部联接
    _erc_openings o ON www.sychzs.cn = o.branch_id AND o.dotw = DAYOFWEEK(CURRENT_DATE())
内部联接
    _erc_openings_times t ON www.sychzs.cn = t.opening_id
在哪里
(
    UNIX_TIMESTAMP(CURRENT_TIMESTAMP()) 之间 UNIX_TIMESTAMP(CONCAT(CURRENT_DATE(), \' \', www.sychzs.cn)) 和 UNIX_TIMESTAMP(CONCAT(CURRENT_DATE(), \' \', t.close))
)
和
(
    www.sychzs.cn = %d
)
;\";

$sql = sprintf($rawsql, mysql_real_escape_string($id));

$结果= mysql_query($sql);

/*这些 if 和 while 语句决定是否应该显示信息。如果上面的查询没有返回结果,则会显示一条替代消息。*/

if(mysql_num_rows($结果) > 0) {
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

        回声“

”。 $row[\"标题\"] 。 \"
\";回显 $row[\"address_1\"] 。 \“
\”。 $row[\"address_2\"] 。 \“
\”。 $row[\"address_3\"] 。 \“
\”。 $row[\"address_4\"] 。 \“
\”。 $row[\"address_5\"] 。 \"

\"; 回声“
”; 回声“
”。 $row[\"电子邮件\"] 。 \"
\"; $extra_notes = $row[\"额外\"]; } } 别的 { $embassy_close = mysql_query(\"SELECT * FROM _erc_foffices WHERE id = \'$embassy_id\'\"); while($row = mysql_fetch_array($embassy_close)) { 回声“

”。 $row[\"标题\"] 。 \"
\"; 回显 $row[\"address_1\"] 。 \“
\”。 $row[\"address_2\"] 。 \“
\”。 $row[\"address_3\"] 。 \“
\”。 $row[\"address_4\"] 。 \“
\”。 $row[\"address_5\"] 。 \" 大使馆已关闭。

\"; 回声“
”; 回声“
”。 $row[\"电子邮件\"] 。 \"
\"; $extra_notes = $row[\"额外\"]; } }
它从数据库中获取大使馆的开放时间,并确定大使馆当前是否开放。如果没有,将出现一条消息,指出“大使馆已关闭”。现在,我需要添加公共假期,因此我将查询更改为如下所示:
 $rawsql = \"选择
    *
    从
        _erc_fofficesn
    内部联接
        _erc_openings o ON www.sychzs.cn = o.branch_id AND o.dotw = DAYOFWEEK(CURRENT_DATE())
    内部联接
        _erc_openings_times t ON www.sychzs.cn = t.opening_id
        左连接
    _erc_holidays h ON h.branch_id = www.sychzs.cn
    在哪里
    (
        UNIX_TIMESTAMP(CURRENT_TIMESTAMP()) 之间 UNIX_TIMESTAMP(CONCAT(CURRENT_DATE(), \' \', www.sychzs.cn)) 和 UNIX_TIMESTAMP(CONCAT(CURRENT_DATE(), \' \', t.close))
    )
    和
    (
        www.sychzs.cn = %d
    )
        和
(
    UNIX_TIMESTAMP(CURRENT_TIMESTAMP())
    不在 UNIX_TIMESTAMP(h.begins_at) 和 UNIX_TIMESTAMP(h.ends_at) 之间
)
        ;\";
但这只会输出地址/电子邮件等两次。 有人可以指出我做错了什么吗? 感谢您的帮助 编辑:我现在只需使用第二个查询和 if/else 循环就解决了问题。 ​​

相关文章