也许我对Array过程/语法的这一部分有一些误解......
我想知道为什么一旦我从数据库得到结果我必须通过foreach或其他类型的循环。
让我们说我知道我只会从查询中得到一个结果:
$query = $this->db->query("MY QUERY LIMIT 1");
到目前为止,我必须通过一个循环来通过它:
foreach ($query->result() as $row){
echo $row->title;
echo $row->name;
echo $row->body;
}
有没有办法在没有循环(for,foreach或其他)的情况下打印项目? 像:
$query->result()->title;
//OR
$query->result()[0]
还是其他什么?
我尝试的上述方法当然不起作用......
也许只是一种不好的做法。这不可能吗?可行?还是...?
答案 0 :(得分:3)
如果您只想获得一个结果,请使用row()
代替
(或row_array()
如果你想把它作为一个数组而不是一个对象)
row()
只返回数据集中的第一行(无论有多少,但通常在只有一行时使用它)。
$row = $this->db->query("MY QUERY LIMIT 1")->row();
echo $row->title;
echo $row->name;
echo $row->body;
作为数组:
$row = $this->db->query("MY QUERY LIMIT 1")->row_array();
echo $row['title'];
echo $row['name'];
echo $row['body'];
旁注,您还可以通过传递特定行来返回
$row = $query->row(5); //works also for its analogue ->row_array(5)
答案 1 :(得分:0)
是的,你只是尝试这样
$data = $query->result();
echo $data->title;
答案 2 :(得分:0)
试试这个
获得结果对象
$row = $this->db->query("MY QUERY LIMIT 1")->row();
echo $row->title;
希望它会有所帮助