【发布时间】:2017-05-15 18:31:55
【问题描述】:
我正在做一个复选框搜索。我是 PHP 新手。如果有人可以帮助我,我将不胜感激。基本上,用户检查所需的选项,点击提交并显示与复选框选项匹配的结果。复选框的值 M 代表男性,F 代表女性,与 MYSQL 表中的数据匹配。
因此,如果用户选中复选框“男性”(请参见下面的代码),则返回 MYSQL 表中具有“男性”值且值为“M”的所有数据。并且任何未选中的复选框都应该被忽略,因为用户只对选项 'Male' 是 'M' (true) 感兴趣。
总而言之,我只需要搜索考虑已检查的复选框并回显已通过 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);
}
【问题讨论】:
-
您的 html 中有 no 复选框。你的意思是
select-options? -
但基本上它会像
if checkbox 'm' then add to sql "OR GENDER='M' " -
对不起,我粘贴了错误的代码。
-
现在你循环遍历
$_POST['keyword']- 如果 value=M 添加"OR GENDER=M"到 sql -
现在显示你的sql,我们可以给出正确的答案