0

我正在寻找将单选更改为复选框并使用它进行 SQL SELECT 的想法:

现在用户通过表单单选(一个类别)代码选择类别:

$zapytanie = $pdo->prepare('SELECT * FROM pytania_new WHERE Kategoria = :kategoria');

脚本显示了我们选择的一个类别的所有问题。

现在我想选择几个类别,所以我将当前代码更改为显示复选框表单并将所选类别保存到数组,但现在我不知道如何执行 SQL 来向我显示几个类别的问题

$zapytanie = $pdo->prepare('SELECT * FROM pytania_new WHERE Kategoria = :kategoria AND :kategoria2');

这不想工作。

下一个问题是如何检查 SQL 应该从数据库下载多少类别。

我希望你能帮助我:)

4

3 回答 3

0

好的,所以首先我们必须创建所有类别的字符串,如下所示:

$kategorie = join(',',$kategoria);

之后有简单的 SQL 可以在 base 中找到一些类别

$zapytanie = $pdo->prepare("SELECT * FROM pytania_new WHERE Kategoria IN ($kategories)");

这就是全部:)

于 2013-04-18T13:56:54.237 回答
0

你可以用一个简单的 for 循环来做到这一点。

$categories = array("first","second");
$query = "";
$delimiter = "";
foreach($categories as $category) {
  $query .= $delimiter . "kategoria = $category";
  $delimiter = " OR "; //Dont really know how your sql looks but this makes more sense. Otherwise change to AND if a row can have multiple categories
}
$sql = "SELECT * FROM pytania_new WHERE $query";
于 2013-04-17T14:36:13.610 回答
0

AND运算符需要提及列,而不是值所以在你的情况下Kategoria = :kategoria AND Kategoria2 = :kategoria2

但是我们没有你的结构,也许你没有第二列,所以你需要收到 2 行结果?然后使用OR运算符:

Kategoria = :kategoria OR Kategoria = :kategoria2

于 2013-04-17T14:32:22.780 回答