0

ループ内でエラーが見つかりません...助けてください

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

4 に答える 4

2

エラーは、空の結果セットまたはクエリのエラーが原因です。

デバッグするには、次の手順を使用してください。

  • echo $query最初に(すべてのパラメータが存在するかどうかを確認してください)
  • Write mysql_query($query)またdie(mysql_error());

これにより、mysql エラーがあれば表示されます。

于 2012-10-16T12:32:05.237 に答える
0

フェッチする前に、$result resource で動作することを確認する必要があります。また、クエリからの行が本当にあるかどうかを確認してください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
    }
}
于 2012-10-16T12:30:23.880 に答える
0

また、次を実行して、クエリのデバッグを試みます。

SELECT parent FROM categories where id=3

または有効な値 ID を後に挿入しますid=

また、選択されているフィールドはparentINT または VARCHAR ですか? (私の推測では、提供されたエラーに基づいて文字列です)

于 2012-10-16T12:38:11.420 に答える