dsfs64664 2012-03-26 22:48
浏览 22
已采纳

在php中选择WHERE子句

I'm trying to make a quiz application and I need to retrieve "n" number of questions from a database. I also need to filter the result with categories or difficulties filters.

I don't have any problem if the user make a category choice (for example) :

$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();

But what if he wants all the categories ?

Can I do something like that to make only one query in my php file ?

$stmt = $db->prepare("SELECT *
                      FROM questions_fr
                      WHERE categories = * (here, select all the categories)
                      LIMIT 0, $size");

Or should I do something like this ?

(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");
}
  • 写回答

2条回答 默认 最新

  • douweng7308 2012-03-26 23:09
    关注

    If they select 'all categories' set the category variable to a wildcard and use the LIKE clause.

    if ($category == "all_categories") {
        $category = '%';
    }
    
    ...
    
    SELECT *
    FROM questions_fr
    WHERE categories LIKE :categories
    LIMIT 0, $size
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?