gpt4 book ai didi

php - 在 php 和 mysql 中用于搜索的多个复选框?

转载 作者:行者123 更新时间:2023-11-29 07:45:46 25 4
gpt4 key购买 nike

这似乎是一个常见问题,因为我见过很多类似的问题。

然而,没有一个答案真正指出如何从 mysql 数据库中进行选择,这是我目前的问题。

基本上我有一个表,我在其中存储搜索数据。

它看起来像这样:

id    blond   darkHair    busty     curvy
---------------------------------------------------

1 blond busty

2 dark hair busty curvy

3 blond curvy

4 blond curvy

我有一个带有复选框的表单,如下所示:

<form action="search.php" method="post">
<input name="keyword[]" type="checkbox" value="blond" />
<input name="keyword[]" type="checkbox" value="dark hair" />
<input name="keyword[]" type="checkbox" value="busty" />
<input name="keyword[]" type="checkbox" value="curvy" />
</form>

PHP 代码如下:

if(isset($_POST['keyword']))
{

$keyword = $_POST['keyword'];

foreach ($_POST['keyword'] as $keyword) {

$keywordarray[] = mysqli_real_escape_string($conx, $keyword);


}
$keywords = implode (",", $keywordarray);

$sql = "SELECT * FROM girlsStaff
WHERE (`blond` LIKE '%".$keyword."%') OR (`darkHair` LIKE '%".$keyword."%') OR (`busty` LIKE '%".$keyword."%') OR (`thin` LIKE '%".$keyword."%')" or die();


$query = mysqli_query($conx, $sql);

现在,除了将此代码转换为 PDO 或准备好的语句之外,还有另一个问题我不明白!

我选择多少个复选框并不重要...它总是从 mysql 数据库返回最后检查/选择的复选框值的结果...

我有什么遗漏的吗?

我也在页面顶部echo $keywords查看发送到页面的内容,并且我得到了所有正确发送的选定/选中框的值..所以我知道问题不存在。

如有任何帮助或建议,我们将不胜感激。

最佳答案

您需要动态构建查询。

<?php
$clause = " WHERE ";//Initial clause
$sql="SELECT * FROM `girlsStaff` ";//Query stub
if(isset($_POST['submit'])){
if(isset($_POST['keyword'])){
foreach($_POST['keyword'] as $c){
if(!empty($c)){
$sql .= $clause."`".$c."` LIKE '%{$c}%'";
$clause = " OR ";//Change to OR after 1st WHERE
}
}
}
echo $sql;//Remove after testing
}
?>
<form method="POST" action="#">
<form action="search.php" method="post">
Blond: <input name="keyword[]" type="checkbox" value="blond" />
Dark Hair: <input name="keyword[]" type="checkbox" value="dark hair" />
Busty : <input name="keyword[]" type="checkbox" value="busty" />
Curvy; <input name="keyword[]" type="checkbox" value="curvy" />
<input type="submit" name="submit" value="Submit">
</form>

示例查询

已填写 2 个复选框

SELECT * FROM `girlsStaff` WHERE `dark hair` LIKE '%dark hair%' OR `curvy` LIKE '%curvy%'

4 已满

SELECT * FROM `girlsStaff` WHERE `blond` LIKE '%blond%' OR `dark hair` LIKE '%dark hair%' OR `busty` LIKE '%busty%' OR `curvy` LIKE '%curvy%'

关于php - 在 php 和 mysql 中用于搜索的多个复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27844347/

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