0

foreach で関数を使用しようとしていますが、エラーが発生します。これが私のコードです:

function student_image_list(){
    global $host, $dbname, $user, $pass;
    $DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
    $STH = $DBH->query("SELECT DISTINCT folder_name from school_students_images");
    $STH->setFetchMode(PDO::FETCH_ASSOC);
    $row = $STH->fetch();
    return $row;
}

table からすべての一意のフォルダー名を出力したいのですがschool_students_images、これを試しています:

$folder_name1 = student_image_list();
foreach($folder_name1['folder_name'] as $folder_name)  
    { 
        echo ' <div class="mws-panel grid_2">
               <div class="mws-panel-header">
               <span>'.$folder_name.'</span>
               </div>                            
               </div>';
    }

エラー警告: この行の41行目のエラーで、student_image_list_raw.php の foreach() に無効な引数が指定されました

foreach($folder_name1['folder_name'] as $folder_name)  

助けてください。

4

1 に答える 1

1

1行だけをフェッチし、「folder_name」キーを持っていないようです。

function student_image_list(){
    global $host, $dbname, $user, $pass;
    $DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
    $STH = $DBH->query("SELECT DISTINCT folder_name from school_students_images");
    $STH->setFetchMode(PDO::FETCH_ASSOC);
    return $STH;
}

$STH = student_image_list();
while (($row = $STH->fetch()) !== false) {
    echo ' <div class="mws-panel grid_2">
           <div class="mws-panel-header">
           <span>'.$row['folder_name'].'</span>
           </div>                            
           </div>';

}
于 2012-05-25T11:43:25.070 に答える