首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何搜索HTML复选框中选择的多个输入(单独)?

如何搜索HTML复选框中选择的多个输入(单独)?
EN

Stack Overflow用户
提问于 2015-05-02 02:25:29
回答 3查看 535关注 0票数 3

关于为同一个表列构造多个输入的MySQLi查询,我有一个简单的问题。基本上,我希望人们能够显示(1)和(2)和(1和2)的结果,但我经常遇到问题。

HTML:

代码语言:javascript
运行
复制
<form method="get" action="page.php">
  <ul>
    <li><input type="checkbox" name="PT1" value="Condo">Condo</li>
    <li><input type="checkbox" name="PT2" value="Single Family">Single Family</li>
  </ul>
</form>

PHP:

代码语言:javascript
运行
复制
if($_GET['PT1'] == "Condo") {
    $PropType1 = "(property_type = 'Condo') AND ";
}

if($_GET['PT2'] == "Single Family") {
     $PropType2 = "(property_type = 'Single Family') AND ";
}

$setPropType = $PropType1 . $PropType2;

MySQLi语句:

代码语言:javascript
运行
复制
$customSelectSQL = "SELECT * FROM $listingsTable WHERE $setPropType (listing_active = 'yes')";

我遇到了一个问题,如果他们都被检查了,查询就什么也不做了,我得到的结果为零。但是当他们被单独挑选出来的时候,效果很好。

我认为数据库正在搜索等于两个输入的属性,而不是分别等于每个输入并为每个单独的输入返回每一行。讲得通?

我猜想这是一个封装的问题,但是当我搜索"MySQL SELECT倍数“或"MySQLi封装”时,我会得到一堆不那么有用的示例。

提前感谢!

EN

Stack Overflow用户

发布于 2015-05-02 02:41:33

我认为当您选择两个复选框时,应该使用OR,因为您选择的字段有两个值。

代码语言:javascript
运行
复制
    $PropType1 = "";
    if($_GET['PT1'] == "Condo") {
        $PropType1 .= "(property_type = 'Condo') ";
    }

    if($_GET['PT2'] == "Single Family") {
      $PropType2 = "";
      // if first checkbox "Condo" is selected also, add OR
      if($_GET['PT1'] == "Condo") {
        $PropType2 .= " OR ";
      }

      $PropType2 .= "(property_type = 'Single Family') AND ";
    }
    else {
      if($_GET['PT1'] == "Condo") {
        $PropType1 .= " AND ";
      }
    }
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29997692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档