PDO的AND和IN参数数量未知?

时间:2019-06-07 19:55:20

标签: php variables select pdo

尝试创建电影问答游戏。有两个影响游戏的不同参数:所选电影的难度和所选电影的类型。 这两个参数都以VARCHAR的形式存储在数据库中:

示例: 难度:容易,中等,困难 -可以选择所有值并将其串联在db中:1,2,3(如果选择了所有值。如果选择了Easy和hard,则选择1,3 ...等

现在要选择电影,我需要过滤我的数据库选择,以仅获取具有所选难度AND类别的电影。

我目前可以使用一个条件过滤我的请求,但不能同时使用两个条件...请在这里需要帮助...

//Getting array of category and difficulty
$categorie_jeu_tab = explode(",", $categorie_jeu);  
$difficulte_jeu_tab = explode(",", $difficulte_jeu);

//Request to filter by category 
$sql_film = "SELECT * FROM films WHERE categorie IN (" . join(',', 
array_map(function() { return '?'; }, $categorie_jeu_tab)) . ")";

$prep = $bdd->prepare($sql_film);
$prep->execute($categorie_jeu_tab);

我正在尝试使用不同的代码在我的SELECT请求中添加第二个参数。他们都没有工作。

例如:

$sql_film = "SELECT * FROM films WHERE 

categorie IN (" . join(',', array_map(function() { return '?'; }, 
$categorie_jeu_tab)) . ") 

AND difficulte IN (" . join(',', array_map(function() { return '?'; }, 
$difficulte_jeu_tab)) . ")";

$prep = $bdd->prepare($sql_film);
$prep->execute($categorie_jeu_tab);

请求有效,但不知道如何同时使用两个过滤器...

0 个答案:

没有答案