【问题标题】:Foreach and DISTINCT with function PHP mysql带有函数 PHP mysql 的 Foreach 和 DISTINCT
【发布时间】:2012-05-25 11:33:39
【问题描述】:

我正在尝试将函数与 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;
}

我想打印表 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)  

请帮忙。

【问题讨论】:

  • 您忘记包含错误文本和行号。

标签: php mysql foreach distinct


【解决方案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>';

}

【讨论】:

  • 感谢它的工作......但请编辑,以便其他人可以轻松理解如何使用此更改 $STH-&gt;setFetchMode(PDO::FETCH_ASSOC); $row = $STH-&gt;fetch(); return $row; 到 $STH-&gt;setFetchMode(PDO::FETCH_ASSOC); return $STH;
猜你喜欢
  • 1970-01-01
  • 2014-02-08
  • 1970-01-01
  • 2013-12-28
  • 1970-01-01
  • 2013-03-01
  • 1970-01-01
  • 2019-04-22
  • 1970-01-01
相关资源
最近更新 更多