如何遍历从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/>' ;
答案 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/>';
}
}