繁体   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