这是我的问题
$rows = $mydb->get_results("SELECT title, description
FROM site_info
WHERE site_id='$id';");
我得到的结果是:
Title1 Desc1
Title2 Desc2
etc.
我想把这些数据放到数组中,所以我要:
$data = array();
foreach ($rows as $obj) {
$data['title'] = $obj->title;
$data['description'] = $obj->description;
}
当我这样做时:
print_r($data);
我只得到第一个项目的标题和描述。。。请帮助:/i选中,我的查询返回数组中的所有内容,而不仅仅是第一行。
2条答案
按热度按时间e0bqpujr1#
每次在迭代中都会重写数组索引。每次为数组赋值时都需要创建新索引。
所以你要么:-
或
供再次显示使用
foreach()
```foreach ($data as $dat) {
echo $dat['title'];
echo $dat['description'];
}
xoshrz7s2#
如果最终的目标只是显示这些值,那么就不必费心将数据重新存储为新的多维数组。
如果
$id
如果是用户提供的数据或来自其他不受信任的来源,出于安全考虑,您应该实施某种形式的清理/检查。至少,如果$id
应为整数,将其转换为整数(整数不需要用引号 Package )。当您想显示对象类型数据时,只需循环
$rows
以及使用->
回显值的语法。如果您有充分的理由保留resultset的冗余/重组副本,那么您可以更简单地命令php为您生成索引。
这个
[]
就像打电话一样array_push()
. php将自动分配数字键,同时将关联数组作为$data
.