MySQL使用AND条件输出数据

时间:2014-12-17 17:06:31

标签: php mysql

我有一个简单的WHERE子句,它应该从MySQL表中获取一些行。

在这个WHERE子句中,我有一个AND条件,但它不输出任何东西......

        $query = " 
        SELECT 
           *
        FROM homework
        WHERE 
            for_type_id = :group_id
            AND for_type_id = :class_id   
        ";

        $query_params = array(
        ':group_id' => $_SESSION["user"]["group_id"],
        ':class_id' => $_SESSION["user"]["class_id"]
        );  

        try 
        { 
        $stmt = $db->prepare($query); 
        $stmt->execute($query_params); 
        } 
        catch(PDOException $ex) 
        { 
        die($ex->getMessage()); 
        } 

        $homework_data = $stmt->fetchAll();

我在SELECT部分​​中使用“for_type_id”两次的原因是因为数据库中的用户对于不同类型的作业有“group_id”和“class_id”,所以我想抓住所有的作业一个用户,使用“class_id”和“group_id”。

而且,它不会输出任何东西。没有错误,没有通知,没有。

有任何建议吗?

修改

修正了拼写错误

1 个答案:

答案 0 :(得分:3)

您声明for_type_id用于抓取一个用户的所有作业。如果在查询中使用AND,则返回的行必须都是group_id和class_id,这几乎肯定是不可能的。我想你可能需要使用OR语句

$query = " 
    SELECT 
       *
    FROM homework
    WHERE 
        for_type_id = :group_id
        OR for_type_id = :class_id   
    ";

那应该返回group_id或class_id

的所有内容