Reputation: 1257
I'm trying to use function with foreach but getting error. Here is my code:
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;
}
I want to print all unique folder names from the table school_students_images
, and I'm trying this:
$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>';
}
Error Warning: Invalid argument supplied for foreach() in student_image_list_raw.php on line 41 error in this line
foreach($folder_name1['folder_name'] as $folder_name)
please help.
Upvotes: 0
Views: 2318
Reputation: 5207
You fetch only one row and seem is not a have a 'folder_name' key, you have to
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>';
}
Upvotes: 1