gpt4 book ai didi

PHP MYSQL 复选框搜索

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

我正在研究复选框搜索。我是 PHP 的新手。如果有人能帮助我,我将不胜感激。基本上,用户检查所需的选项,点击提交并显示与复选框选项匹配的结果。复选框的值 M 表示男性,F 表示女性,这与 MYSQL 表中的数据匹配。

因此,如果用户选中复选框“Male”(参见下面的代码),则返回 MYSQL 表中值为“M”的所有带有“Male”的数据。并且任何未选中的复选框都应该被忽略,因为用户只对“男性”选项为“M”(真)感兴趣。

总而言之,我只需要搜索考虑已选中的复选框并通过 PHP 回显已选择(更像是过滤)的用户。感谢任何帮助。谢谢

表格看起来像这样:

id      name     address    gender    race
-------------------------------------------

1. 1 Lee NY M French
2. 2 James LA M Colombian
3. 3 Kashi JAPAN F Japanese

我有一个带有这样复选框的表单:

<form action="shortlist.php" method="post">
<label for="sel1">Gender:</label>
Male:<input name="keyword[]" type="checkbox" value="M" />
Female:<input name="keyword[]" type="checkbox" value="F" />
<button name = "myBtn" type="submit" class="btn btn- default">Search</button>
</form>

SQL:

$sql="SELECT name, address,gender,race FROM talent1 WHERE gender = $gender'";

我想回应这样的事情:

echo "<table width='100%'>\n";
//if (mysqli_num_rows($result) > 0){
//$row=mysqli_fetch_assoc($result);
//$muchneededid = $row["talent_id"];
while ($row=mysqli_fetch_assoc($result))
echo'<tr>'."\n";
echo '<tr>';
echo '<th>Name</th>';
echo '<th>Address</th>';
echo '<th>Gender</th>';
echo '</tr>';
echo "<td>{$row["name"]}</td>\n" . "<td>{$row["address"]}</td>\n" . "<td>{$row["gender"]}</td>\n";
echo '</tr>'."\n";
echo "</table>\n";
}
else
{
echo "0 results";
}
mysqli_close($conn);
}

最佳答案

根据我们得到的信息,它应该是这样的:

<?php
//$_POST['keyword'] = array("M", "F");
$sql_addon = ''; // EDIT: this was one line below first, which of course created an 'undefined' error.
if(isset($_POST['keyword'])) {

foreach($_POST['keyword'] as $k => $val) {
$sql_addon.= " OR gender='$val'";
}
}
$sql="SELECT name, address,gender,race FROM talent1 WHERE 1=1 ";
if($sql_addon) {
$sql .= " AND (1=2 ".$sql_addon.")";
}
echo $sql;
// SELECT name, address,gender,race FROM talent1 WHERE 1=1 AND (1=2 OR gender=M OR gender=F)
?>

那些 1=1 和 1=2 可能看起来很傻,但它是(恕我直言)生成该 sql 的最简单方法。 1=2 用于创建一个虚假值,因此如果没有单击任何选项,则不会显示任何记录。

关于PHP MYSQL 复选框搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41413472/

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