警告:mysql_fetch_assoc()期望参数1是资源,给定字符串

时间:2012-10-16 12:18:21

标签: php mysql arrays

无法在循环中找到错误...请帮帮我

foreach($cat1 as $category){
    $query="SELECT parent FROM categories where id=".$category;
    $result = mysql_query($query);  
    $line = mysql_fetch_assoc($result);
    array_push($cat1,$line['parent']);
    }

4 个答案:

答案 0 :(得分:2)

错误是由于结果集空或查询中的错误造成的。

请使用以下步骤进行调试:

    首先
  • echo $query(检查所有参数是否存在)
  • Write mysql_query($query)die(mysql_error());

如果有的话,这将显示mysql错误。

答案 1 :(得分:0)

在提取之前,您应该检查$result 以确保您使用资源。另外,请检查您是否确实拥有来自mysql_num_rows的查询行。

foreach($cat1 as $category){
    $query="SELECT parent FROM categories where id=".$category;
    $result = mysql_query($query);

    // Check result
    // This shows the actual query sent to MySQL, and the error. Useful for debugging.
    if (!$result) {
        $message  = 'Invalid query: ' . mysql_error() . "\n";
        $message .= 'Whole query: ' . $query;
        die($message);
    }

    if(mysql_num_rows($result) > 0) {
        $line = mysql_fetch_assoc($result);
        array_push($cat1,$line['parent']);
    }
    else {
       // do something else
    }
}

答案 2 :(得分:0)

我还会尝试通过运行:

来调试查询
SELECT parent FROM categories where id=3

或在id=

之后插入有效的值ID

此外,是否正在选择字段:parent INT或VARCHAR? (我的猜测是,它是一个字符串,基于你提供的错误)

答案 3 :(得分:0)

if (mysql_fetch_assoc($result) == 1) {

    $score ++;
}
  

警告:mysql_fetch_assoc()期望参数1是资源,   第24行的C:\ xampp \ htdocs \ answer \ get_answer.php中给出的布尔值