2016-06-27 154 views
-1

我正在尝试使用多个复选框创建搜索功能。问题是,我的客户随机要求提供不同类别的清单。例如,他会要求列出有家属的员工名单,有时候还会列出30岁以上的员工名单,有时甚至包括两名员工。名单继续,重点是他可以向我提供任何类别的名单。我想知道如何使用复选框和sql命令来实现此目的?先谢谢你。对不起,我可怜的英语btw。复杂搜索功能SQL

+1

欢迎的话,请取几分钟检查[如何问](http://stackoverflow.com/help/how-to-ask)。 – Blank

回答

0

您可以为每个不同的复选框分配一个特定的语句,并使用一个表单来发布每个单独的框。此外,如果所有查询都在同一个表中运行,则可以添加固定语句并动态分配值。下面的代码是如何完成的一个简短例子。
$checkbox = "Name,Age" $checkbox2 = "category2" $query ="SELECT".$checkbox ."FROM TableName WHERE Category=".$checkbox2;

,这将给出为
"$query = SELECT Name,Age FROM TableName WHERE Category=category2

0

我假设你是问如何建立你的地方陈述了从复选框输入的最后声明。

如果你有一个这样的形式:

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

结果:

SELECT column FROM table WHERE column1 = "test" AND column2 = "test2" 
+0

一个很好的答案,但我认为这是违背SO的精神做出如此广泛的假设。 – Strawberry

+0

@strawberry,你能帮我解决我的问题吗?非常感谢你。 –

+0

你能提供一个你想要做的事情的小例子吗? – Philipp