通过函数作为数组返回时迭代记录集

时间:2017-08-06 03:20:04

标签: php mysql

如何遍历从PHP函数返回的数组Object以检索记录集的所有记录?

尝试让这段代码返回一个包含所有行的数组

 // @param group_id @returns result rows of all post from group with the corresponding ID

        function getGroupPostItem($group_id){

      $sql_query = mysql_query("SELECT * FROM posts WHERE gid = '$group_id'");
   while( $rows = mysql_fetch_assoc($sql_query)) {



$record_set = array('gid' => $rows['gid'],
                    'pid' => $rows['pid'],
                    'post' => $rows['post'],
                    'filemap_id' => $rows['filemap_id']);


return $record_set;



       }
            }

尝试使用以下代码打印数据库中与查询匹配的行中的所有记录,但它所做的只是打印一行。

$arr = getGroupPostItem('6');
echo $arr['post']. '<br/>' ;

1 个答案:

答案 0 :(得分:0)

你应该能够改变这一行:

$record_set = array('gid' => $rows['gid'],

......对此:

$record_set[] = array('gid' => $rows['gid'],

编辑:另外,正如Paul T的评论中所述,return $record_set;应该在while循环之外。

注意:仅echo $arr['post'] . '<br/>';不会显示单个值,因为它现在是一个数组。相反,它必须通过for或foreach循环传递。例如:

foreach ($arr as $val) {
  echo $val['post'] . '<br/>';
}

......或:

for ($i = 0; $i < count($arr); $i++) {
  // Optional, if you want the loop to stop at the 0th value
  if ($i == 0) {
    echo $arr[$i]['post'] . '<br/>';
  }
}