0

好的,在这里搜索了很多网站,并在谷歌搜索结果中找到了许多网站,但找不到我的问题的确切解决方法。

我有一个 sql 提取名称和办公室。所以它是这样的:

    $sql = "SELECT myStaff_tbl.firstName, myStaff_tbl.lastName, myOffice_tbl.officeName,
    myOfficeLoc_tbl.primary_loc_bit 
    FROM myOfficeLoc_tbl 
    INNER JOIN myOffice_tbl ON myOfficeLoc_tbl.office_Id = myOffice_tbl.office_Id
    INNER JOIN myStaff_tbl ON myOfficeLoc_tbl.staff_Id = myStaff_tbl.staff_Id
    WHERE location_tbl.staffID = $myvariable"

我的 html 看起来像这样:

    <td align="center"><input type="radio" name="bit_primary_loc" value="" <?php if ($row_rs_myQuery['primary_loc_bit'] == 1) {echo "checked='checked'";} ?> > </td>

当然,我的 html 包含在一个循环语句中,用于检查是否有多个办公地点与该员工相关联。如果有多个位置,它将吐出它们。但我目前的问题是当我尝试 var_dump 该行或只是简单地回显它显示为空白时,它现在就输出 $row_rs_myQuery['primary_loc_bit'] 。

如果该办公室设置为工作人员的主要位置,我希望检查单选按钮,并且因为他们只能有 1 个主要位置,所以它需要是一个单选按钮。

任何想法为什么当我在我的 phpMyAdmin 中运行 sql 查询时它确实显示时它不会显示为已检查?

仅供参考,当我在 phpMyAdmin 中运行 sql 时,我会得到类似的结果

    Steve Smith   Portland   1
    Steve Smith   Salem      0
    Steve Smith   Ontario    0
4

1 回答 1

1

您得到似乎是空字符串的原因是因为 BIT 数据类型存储的值等于字符的 ASCII 码。等于 1 的 ASCII 码是START OF HEADER,这是一个不可见的、不可打印的字符。当您想要一个可以是或(开或关)的列值时,请改用BOOL( )。TINYINT(3)TRUEFALSE

另见:Mysql:如何查询类型为位的列?

于 2013-09-08T21:05:01.747 回答