2016-06-27 242 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