首页 > 解决方案 > 来自 mysql db 的多种类型的信息显示

问题描述

我最近在这里得到了很大的帮助和指导,所以我回来了!该项目正在收集可用护理设施的列表,并让用户能够搜索 dB。因此,我根据用户输入的 CITY 和 SPECIALTY 信息获得了有关每个人的信息——一切都很好——但现在我想在显示的信息中包括 DAYS OPEN 和 INSURANCE ACCEPTED。我在单独的行中分别输入了 dB - 即 WEDNESDAY = 1 如果打开,0 如果关闭。

我正在使用以下内容来显示与用户搜索条件匹配的信息,现在想要包括(即)DAYS OPEN。

    <?php

        $city = $_GET['city'];
        $specialty = $_GET['specialty'];

        $result = mysqli_query($conn, "SELECT name, agency, address, city, email, phone FROM counselors WHERE city ='$city' AND specialty LIKE '%$specialty%';");
    while ($row = mysqli_fetch_array($result))
    {
            echo $row['name'] . "<br>" . $row['agency'] . "<br>" . $row['address'] . "<br>" . $row['city'] . "<br>" . $row['email'] . "<br>" . $row['phone'];
            echo "<br><br><br>";
    }
        mysqli_close($conn);
?>

因此,如果 dB 中的信息在星期三显示“1”,我的网页显示“在“星期三”打开等。我的 dB 是用一周中的每一天作为它自己的行构建的,如果打开,则条目为“1”和“ 0" 如果关闭。

标签: mysqlphp

解决方案


考虑有一个专栏

days_open TINYINT UNSIGNED NOT NULL DEFAULT "0"

其中位表示一周中的哪几天开放:

1 (bit 0): Sunday
2 (bit 1): Monday
4 (bit 2): Tuesday
...
64 (bit 6): Saturday

请注意,您可以使用以下命令检查星期二(位 2);这可以被视为布尔值:

(days_open & (1 << 2))

值 127 表示每周开放 7 天,依此类推。示例:

mysql> SELECT bin(127) AllDays, bin(65) Weekends, bin(62) Weekdays;
+---------+----------+----------+
| AllDays | Weekends | Weekdays |
+---------+----------+----------+
| 1111111 | 1000001  | 111110   |
+---------+----------+----------+

推荐阅读