gpt4 book ai didi

php - 如何搜索在 HTML 复选框中选择的多个输入(分别)?

转载 作者:太空宇宙 更新时间:2023-11-04 13:28:33 25 4
gpt4 key购买 nike

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

HTML:

<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:

if($_GET['PT1'] == "Condo") {
$PropType1 = "(property_type = 'Condo') AND ";
}

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

$setPropType = $PropType1 . $PropType2;

MySQLi 语句:

$customSelectSQL = "SELECT * FROM $listingsTable WHERE $setPropType (listing_active = 'yes')";

我遇到了一个问题,如果同时检查了它们,查询将不执行任何操作,我得到的结果为零。但当它们被单独选择时,效果很好。

我认为发生的事情是数据库正在搜索等于两个输入的属性,而不是分别等于每个输入并为每个单独的输入返回每一行。有道理吗?

我猜这是封装之类的问题,但是当我搜索“MySQL SELECT Multiple”或“MySQLi encapsulation”时,我得到了一堆不太有用的示例。

提前致谢!

最佳答案

最好将它们放入数组中,然后将它们内爆。
编辑:同样,您应该在搜索 property_type 时使用 OR,因为您不会找到 1 行具有 2 个不同的 property_type 作为 AND(因为它是一列)。

像这样的东西:

$where = array();
if($_GET['PT1'] == "Condo") {
$where[] = "(property_type = 'Condo')";
}
if($_GET['PT2'] == "Single Family") {
$where[] = "(property_type = 'Single Family')";
}

$where_string = implode(' OR ', $where);
$customSelectSQL = "SELECT * FROM $listingsTable WHERE (listing_active = 'yes') AND ($where_string)";

edit2: 为了防止出现空数组,只需添加 if(如果只需要一个 AND)或添加额外的数组来连接 AND 语句,例如:

$where_or = array();
$where_and = array();
$where_and[] = "(listing_active = 'yes')";
if($_GET['PT1'] == "Condo") {
$where_or[] = "(property_type = 'Condo')";
}
if($_GET['PT2'] == "Single Family") {
$where_or[] = "(property_type = 'Single Family')";
}

if(count($where_or) > 0) {
$where_and[] = '('.implode(' OR ', $where_or).')';
}

if(count($where_and) > 0) {
$where_string = implode(' AND ', $where_and);
} else {
$where_string = '';
}
$customSelectSQL = "SELECT * FROM $listingsTable $where_string";

关于php - 如何搜索在 HTML 复选框中选择的多个输入(分别)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29997692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com