2012-07-12 87 views
-3

我正在創建一個表單,允許用戶搜索不同的標準數據庫:位置,城市,最低價格,最高價格等如何添加多個查詢WHERE語句,可能有或可能沒有值

我有一個「基本」選擇語句:SELECT * FROM table

在搜索表單中,有幾個文本框和下拉列表可能有也可能沒有值,具體取決於用戶想要搜索的內容。

我無法弄清楚如何在可能或不可能有用於特定表列的值(基於用戶選擇)的情況下向sql語句添加WHERE子句。

感謝任何人的幫助!

+1

可以顯示一些代碼?你有什麼嘗試? – jcho360 2012-07-12 12:27:58

+0

你的意思是「可能或不可能」。使用select *。 – 2012-07-12 12:28:11

回答

3

在生成SQL的代碼中,檢查用戶輸入的字段,並在查找到更多來自用戶的輸入時向查詢附加更多檢查。 PHP中的快速示例:

$sql = "SELECT * FROM table"; 
$where_checks = array(); 

if (isset($_POST['city'])) 
    $where_checks[] = "city = '{$_POST['city']}'"; 
if (isset($_POST['location'])) 
    $where_checks[] = "location = '{$_POST['location']}'"; 

// Add more stuff here 

if (count($where_checks) > 0) 
    $sql .= " WHERE " . implode('AND', $where_checks); 

// run query 

我故意忽略衛生/轉義後輸入以保持示例簡單。但你明顯必須消毒輸入以及

注意WHERE之前的額外空間,否則查詢將被打破。

+0

有道理,SilverSnake。並感謝有關清理用戶條目的提醒。謝謝! – marky 2012-07-12 12:39:07

+0

@eventide當然可以!並感謝Lex修復我愚蠢的代碼錯誤。 :) – SilverSnake 2012-07-12 12:40:00

相關問題