0

データベース内に検索を作成していますが、結果をエコーするためにforeach構文を使用すると、「foreachに無効な引数が指定されています。」というメッセージが表示されます。私が理解していないのは、エラーを含むforeachが正常に機能するために、このエラーが発生する理由です。

if (empty($errors)){
    $results = search_results($keywords);
    $results_num = count($results);

    foreach ($results as $result){
        echo '<p> <strong>', $result['TITLE'], '</strong> </p>';
    }
} else {
    foreach($errors as $error){
        echo $error, '</br>';
    }
}

注目されているsearch_results関数の部分はこれです

$results = "SELECT TITLE FROM occupationalinfo WHERE $where"; 
$results_num = ($results = mysql_query($results)) ? mysql_num_rows($results): 0;

if ($results_num === 0){
    return false;
}else{
    while ($results_row = mysql_fetch_assoc($results)) {
        $returned_results[] = array(
            'title' => $results_row['TITLE']
        );      
    }
}

私はまだプログラミングに慣れていないので、見逃したものや、まったく得られなかったものがあるかどうかを理解しています。ヒントや建設的な批判をいただければ幸いです。

4

2 に答える 2

5
if ($results_num === 0){
    return false;
}

私はこれが実行されているに違いないので、それは戻ってきfalseます。foreachに申し込むことはできませんfalse。おそらくあなたはすべきですreturn array()、または単にチェックしてくださいfalse

$results = search_results($keywords);
if ($results !== false) {
    $results_num = count($results);

    foreach ($results as $result){
        echo '<p> <strong>',$result['TITLE'],'</strong> </p>';
    }
}
于 2012-10-10T19:34:22.793 に答える
0

php関数を試してくださいis_array()

if (empty($errors)){
           $results = search_results($keywords);
            if(is_array($results)){
               foreach ($results as $result){
                 echo '<p> <strong>'. $result['TITLE'] .'</strong></p>';
               }
            } else {
                echo "<p> <strong>empty</strong></p>";
            }
    } 

また

 if (empty($errors)){
        $results = search_results($keywords);
        if(is_array($results)){
             $results_num = count($results);
             foreach ($results as $result){
               echo '<p> <strong>'. $result['TITLE']. '</strong> </p>';
             }
        }        
    } else {
        foreach($errors as $error){
            echo $error, '</br>';
        }
    }
于 2012-10-10T19:45:52.503 に答える