2012-05-25 60 views
0

我试图用foreach函数但得到错误。这里是我的代码:Foreach和DISTINCT与函数PHP mysql

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; 
} 

我想从表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>'; 
    } 

错误 警告:的foreach提供了无效的参数()在这一行上线41 错误student_image_list_raw.php

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

请帮助。

+1

你忘了,包括错误文本和行号。 – Quassnoi

+0

错误补充请帮忙 – Harinder

回答

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>'; 

} 
+0

感谢man的工作......但请编辑,让其他人可以很容易地理解如何使用这种变化'$ STH-> setFetchMode(PDO :: FETCH_ASSOC); $ row = $ STH-> fetch(); return $ row;'into'$ STH-> setFetchMode(PDO :: FETCH_ASSOC); return $ STH;' – Harinder

+0

@Harinder,welldone – Sergey