复杂的搜索功能SQL

时间:2016-06-27 05:58:14

标签: php mysql sql

我正在尝试使用多个复选框创建搜索功能。问题是,我的客户随机要求提供不同类别的列表。例如,他会要求列出有受抚养人的雇员名单,或者有时会列出30岁以上或有时两者兼而有的雇员名单。列表继续,关键是他可以问我一个任何类别的列表。我想知道如何使用复选框和sql命令实现此目的?先感谢您。抱歉,我的英语很差。

2 个答案:

答案 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;
}