0

我有以下代码,但我的 mysql 查询没有返回任何值。请告诉我我做错了什么:

foreach($stagearray as $catgry){
    echo $catgry;//this is returning the values
    $sql = mysql_query("
        select
            count(reference) as CCOUNTS,
            assignee_group
        from
            issue_tracking_issues i,
            issue_tracking_issues_issue_tracking_projects j
        where
            status NOT LIKE 'Closed%'
            AND i.id=j.issue_tracking_issue_id
            AND j.issue_tracking_project_id=1
            and $value
        having
            SUBSTR(date_raised,3,3)
        group by
            assignee_group
    ");

    while($rows = mysql_fetch_array($sql)){

这给了我以下警告:

PHP 警告:mysql_fetch_array():提供的参数不是有效的 MySQL 结果资源

我猜我的 sql 查询无法解析 $catgry 但我不知道为什么

4

1 回答 1

1

您不检查mysql_query(). 当mysql_query()因任何原因失败时,它会返回false. 当您将此false值放入mysql_fetch_array()时,它当然会抱怨,因为它需要一个查询结果集而不仅仅是一个false值。

至少添加or die(mysql_error());以查看您的查询有什么问题

$sql = mysql_query("select count(reference) as CCOUNTS,assignee_group from issue_tracking_issues...") or die(mysql_error());

查看查询,我猜罪魁祸首可能是having子句中的wherehaving不能以这种方式用作运算符,因为它是从group by集合中选择的。这应该是

select ... from ... where ... group by ... having ...

如果要与$value子字符串进行比较,请使用比较运算符,如=orlikeregexp

详情请参阅SELECT Syntax

OT:mysql*现在已弃用。考虑切换到mysqli*PDO

于 2013-04-17T20:13:45.077 回答