gpt4 book ai didi

php - 如何使用带有多个复选框的 SELECT(sql)?

转载 作者:行者123 更新时间:2023-11-29 16:33:33 24 4
gpt4 key购买 nike

我有 2 个多个复选框,如果勾选了多个复选框,则无法正确显示它。仅最后一个复选框用于选择查询中的过滤器。

我在网上搜索了很多,但没有找到也有此问题的人。

问题:如何使用带有多个复选框的 SELECT(sql)?

HTML 代码:

<aside><h3>Filter:</h3>
<details open="open">
<summary><label>Categorie</label></summary>
<div>
<label>
<input type="checkbox" name="filter_categorie[]" value="dog">
Dogs
</label>
</div>
<div>
<label>
<input type="checkbox" name="filter_categorie[]" value="fish">
Fishes
</label>
</div>
<div>
<label>
<input type="checkbox" name="filter_categorie[]" value="other">
Other
</label>
</div>
</details>
<details>
<summary><label>Land</label></summary>
<div>
<label>
<input type="checkbox" name="filter_country[]" value="germany">
Germany
</label>
</div>
<div>
<label>
<input type="checkbox" name="filter_country[]" value="austria">
Austria
</label>
</div>
</details>

<br><input type='submit' name ='update' value='Update'>

PHP 代码:

include("server.inc");
$cxn = mysqli_connect($host,$user,$password,$database) or die ("No connection to Server");
if(isset($_POST['update']) ){
foreach ($_POST['filter_categorie[]'] as $item){
$query = "
SELECT *
FROM artikel
WHERE Categorie=\"{$_POST['filter_categorie']}\"
";}
$resultat = mysqli_query($cxn,$query) or die ("No results.");

最佳答案

尝试这样的事情(未经测试,这只是一个想法):

include("server.inc");
$cxn = mysqli_connect($host,$user,$password,$database) or die ("No connection to Server");
if(isset($_POST['update']) ){

$query = 'SELECT * FROM artikel WHERE Categorie IN ('.implode(',', $_POST['filter_categorie']).')';

$resultat = mysqli_query($cxn,$query) or die ("No results.");
}

所以基本上使用 $_POST['filter_categorie'] 而不是 $_POST['filter_categorie[]'] 并使用 implode 将所有类别作为查询中的字符串给出.

无需使用 foreach,您不想在前端运行与选择的类别一样多的查询。

关于php - 如何使用带有多个复选框的 SELECT(sql)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53745286/

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