我正在尝试制作一个测试应用程序,我需要从数据库中检索“n”个问题。我还需要用类别或困难过滤器过滤结果。
如果用户选择了一个类别,我没有任何问题(例如):
$size = $_POST['param0'];
$category = $_POST['param1'];
$stmt = $db->prepare("SELECT *
FROM questions_fr
WHERE categories = :categories
LIMIT 0, $size");
$stmt->bindparam(":category", $category);
$stmt->execute();
但如果他想要所有的类别呢?
我能做些类似的事情在我的php文件中只做一个查询吗?
$stmt = $db->prepare("SELECT *
FROM questions_fr
WHERE categories = * (here, select all the categories)
LIMIT 0, $size");
还是我应该做这样的事?
(pseudocode)
if ($category != "all_categories")
{
$stmt = $db->prepare("SELECT *
FROM questions_fr
WHERE categories = :categories
LIMIT 0, $size");
}
else if ($category == "all_categories")
{
$stmt = $db->prepare("SELECT *
FROM questions_fr
LIMIT 0, $size");
}
最佳答案
如果选择“所有类别”,请将category变量设置为通配符并使用LIKE
子句。
if ($category == "all_categories") {
$category = '%';
}
...
SELECT *
FROM questions_fr
WHERE categories LIKE :categories
LIMIT 0, $size