以其他方式从MySQLi过滤数据

时间:2015-05-22 13:58:33

标签: php mysql mysqli

首先,我是一名新手PHP开发人员。

我正在开发一个网站,其中包含一个包含员工记录的数据库。每个都分配了ID,名称,mobNo,地址等。

网站上有一个过滤器面板,有许多过滤器可供使用,如名称过滤器,mobNo过滤器......

我真正想要的是,如果选择1个过滤器,PHP将只处理1个MySQLi查询:

WHERE '$param' LIKE '%$paramValue%'

如果用户选择2个过滤器,比如Name和mobNo,PHP应该处理2个类似的查询:

WHERE '$param' LIKE '%$paramValue%'AND '$param2' LIKE '%$paramValue2%';

链条应该继续...... 我将使用AJAX,但你不必担心它......我会自己整合它。

2 个答案:

答案 0 :(得分:1)

您应该使用像isset()这样的函数或任何其他方式来检查用户选择的内容,然后显示相应的查询。

$query = "SELECT blabla WHERE ";
$int = 0; //checks if query needs an 'AND'

    if (isset(filter1)) {
          $query += "$param1 LIKE $paramValue1";
          $int = 1;
    }
    if (isset(filter2)) {
          if ($int = 1)
             $query += " AND ";
          $query += "$param2 LIKE $paramValue2";
          $int = 1;
    }

等等。 不太确定你需要什么,但希望它是这样的。要有创意:))

答案 1 :(得分:0)

$sql = "WHERE '$param' LIKE '%$paramValue%'"; 
if($param2 != '')$sql .= "AND '$param2' LIKE '%$paramValue2%'";
if($param3 != '')$sql .= "AND '$param3' LIKE '%$paramValue3%'";
...

如果您希望参数是模块化的,您需要将它们分块添加,具体取决于它们是否设置。