Php 处理滤波器组合的一般概念

Php 处理滤波器组合的一般概念,php,combinatorics,Php,Combinatorics,我正在做一个项目,使用过滤器来建立一个电影制作人 一般的想法是,每个过滤器都可以单独应用 如上图所示,您可以自己搜索(标题|导演|演员)。或者搜索运行时间少于X分钟的电影。或者搜索某一年的电影 或执行2个或所有选项的组合 目前,该项目是用PHP编写的,但我将接受任何提示,因为我对处理组合的一般概念感兴趣 到目前为止,这是我的方法:我为这3个过滤器的所有可能组合编写了代码。我相信这是所有可能的方法中最糟糕的,我希望你能给我一些见解 if (!empty($suchstring) &&am

我正在做一个项目,使用过滤器来建立一个电影制作人

一般的想法是,每个过滤器都可以单独应用

如上图所示,您可以自己搜索(标题|导演|演员)。或者搜索运行时间少于X分钟的电影。或者搜索某一年的电影

或执行2个或所有选项的组合

目前,该项目是用PHP编写的,但我将接受任何提示,因为我对处理组合的一般概念感兴趣

到目前为止,这是我的方法:我为这3个过滤器的所有可能组合编写了代码。我相信这是所有可能的方法中最糟糕的,我希望你能给我一些见解

if (!empty($suchstring) && empty($dauer) && empty($jahr)) {
    // do for suchstring
}
elseif(!empty($dauer) && empty($suchstring) && empty($jahr)) {
    // do for dauer
}
elseif(!empty($jahr) && empty($suchstring) && empty($dauer)) {
    // do for jahr
}
elseif (!empty($suchstring) && !empty($dauer) && empty($jahr)) {
    // do for dauer THEN do for suchstring
}
elseif (!empty($suchstring) && !empty($jahr) && empty($dauer)) {
    // do for jahr THEN do for suchstring
}
elseif(empty($suchstring) && !empty($dauer) && !empty($jahr)) {
    // do for dauer THEN do for jahr
}
elseif (!empty($suchstring) && !empty($dauer) && !empty($jahr)) {
    // do for dauer THEn do for jahr THEN do for suchstring
}
也许是这样:

    $link = mysqli_connect(SERVER, USER, PASS, DB);

    $sql_str = "SELECT .... ";

   if (!empty($suchstring)) {
      $suchstring = mysqli_real_escape_string($link, $suchstring); //or mysql_real_escape_string
      $sql_str .= " AND SUCHSTRING ='".$suchstring."'";  //or LIKE '%".$suchstring."%'
   }
   if (!empty($dauer)) {
      $dauer = mysqli_real_escape_string($link, $dauer);
      $sql_str .= " AND DAUER ='".$dauer."'";
   }
   if (!empty($jahr)) {
      $jahr = mysqli_real_escape_string($link, $jahr);
      $sql_str .= " AND JAHR ='".$jahr."'";
   }

  //sql_query for $sql_str
也许是这样:

    $link = mysqli_connect(SERVER, USER, PASS, DB);

    $sql_str = "SELECT .... ";

   if (!empty($suchstring)) {
      $suchstring = mysqli_real_escape_string($link, $suchstring); //or mysql_real_escape_string
      $sql_str .= " AND SUCHSTRING ='".$suchstring."'";  //or LIKE '%".$suchstring."%'
   }
   if (!empty($dauer)) {
      $dauer = mysqli_real_escape_string($link, $dauer);
      $sql_str .= " AND DAUER ='".$dauer."'";
   }
   if (!empty($jahr)) {
      $jahr = mysqli_real_escape_string($link, $jahr);
      $sql_str .= " AND JAHR ='".$jahr."'";
   }

  //sql_query for $sql_str

您如何与数据库交互?Mysqli?PDO?还有什么?你是如何与数据库交互的?Mysqli?PDO?还有什么?第一个
可能会破坏查询。任何人都不应该推荐已弃用/删除的
mysql\uz
函数。准备好的陈述是最合适/现代/专业的。此外,您的问题缺少简单的英语解释。第一个
可能会中断查询。任何人都不应该推荐已弃用/删除的
mysql\uz
函数。准备好的陈述是最合适/现代/专业的。你的问题也缺少简单的英语解释。