簡體   English   中英

SQL查詢,其中filter = *

[英]SQL query where filter = *

用PHP / sql編寫一個小的過濾器。 用戶可以從兩個過濾器選項中進行選擇,但是他們也可以選擇在過濾器中選擇“全部”,只是使查詢不對結果進行過濾。

使用基本的WHERE方法,查詢看起來像這樣

$query = ("SELECT * FROM user WHERE userid = '$userid' AND department = '$department'");

我將如何調整它以使過濾器返回該特定過濾器的所有結果? 如在PHP中編寫一堆if else語句似乎很龐大。

$expected_filters = array(
  // 'mysql_column'=>'php_variable',
  'userid'=>'userid',
  'department'=>'department',
);


$final_filters = array();

foreach ($expected_filters as $k => $v) {
  if (isset($_POST[$v]) && trim($_POST[$v])) {
    $final_filters[] = sprintf("%s= '%s'", $k, $v);      
  }    
}

$where = '';

if (count($final_filters)>0) {
    $where = implode(' AND ', $filter);
    $where = ' WHERE ' . $where;
}

$query = ("SELECT * FROM user $where");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM