我正在尝试使用多个复选框创建搜索功能。问题是,我的客户随机要求提供不同类别的列表。例如,他会要求列出有受抚养人的雇员名单,或者有时会列出30岁以上或有时两者兼而有的雇员名单。列表继续,关键是他可以问我一个任何类别的列表。我想知道如何使用复选框和sql命令实现此目的?先感谢您。抱歉,我的英语很差。
答案 0 :(得分:0)
您可以为每个不同的复选框分配特定语句,并使用表单POST每个单独的框。此外,如果所有查询都在同一个表中运行,则可以添加固定语句并动态分配值。下面的代码是如何完成的简短示例
$checkbox = "Name,Age"
$checkbox2 = "category2"
$query ="SELECT".$checkbox ."FROM TableName WHERE Category=".$checkbox2;
将最终陈述作为
给出
"$query = SELECT Name,Age FROM TableName WHERE Category=category2
答案 1 :(得分:0)
我假设你在询问如何从复选框的输入中构建你的where语句。
如果你有这样的表格:
<div class="main">
<div class="in">
<img src="http://www.w3schools.com/tags/smiley.gif" alt="Smiley face" width="42" height="42">
</div>
<div class="in">
<img src="http://www.w3schools.com/tags/smiley.gif" alt="Smiley face" width="42" height="42">
</div>
</div>
您可以构建如下查询:
<form method="POST">
<input type="checkbox" name="test">
<input type="checkbox" name="test2">
<input type="checkbox" name="test3">
<input type="submit" name="submit">
</form>
结果:
if(isset($_POST['submit'])){
$queryParams = array();
if(isset($_POST['test'])){
$queryParams[] = 'column1 = "test"';
}
if(isset($_POST['test2'])){
$queryParams[] = 'column2 = "test2"';
}
if(isset($_POST['test3'])){
$queryParams[] = 'column3 = "test3"';
}
$where = (count($queryParams) > 0) ? 'WHERE ' . implode(' AND ', $queryParams) : '';
$query = 'SELECT column FROM table ' . $where;
echo $query;
}