请查看此查询:
$this->db->select('users.user_id, user_info.name, user_info.fam ,user_type.type_name ');
$this->db->from('user_info');
$this->db->join('users', 'users.user_id = user_info.user_id');
$this->db->join('user_type', 'users.usr_typ_id = user_type.user_type');
$data= $this->db->get()->result_array();
var_dump($data);
echo "<hr>";
foreach ($data as $row);
{
echo $row->user_id ."|";
echo $row->name ."|";
echo $row->fam ."|";
echo $row->type_name ."|".'<br>';
echo "<hr>";
}
在结果中:
var_dump($ data)返回以下行
array(2) { [0]=> array(4) { ["user_id"]=> string(8) "92090001" ["name"]=> string(5) "parsa" ["fam"]=> string(5) "arian" ["type_name"]=> string(13) "Administrator" } [1]=> array(4) { ["user_id"]=> string(8) "92090002" ["name"]=> string(6) "pendar" ["fam"]=> string(6) "pajouh" ["type_name"]=> string(7) "Blogger" } }
但是&#34; foreach &#34;部分显示每行的跟随错误:
A PHP Error was encountered
Severity: Notice
Message: Trying to get property of non-object
Filename: models/user_model.php
Line Number: 47
如果有人可以帮助我,我将感激不尽。
答案 0 :(得分:2)
您应该使用result()
代替result_array()
$data = $this->db->get()->result();
result()将查询结果作为对象数组返回
result_array()将查询结果作为纯数组返回
或者,如果您继续使用result_array()
,则应更改以下访问类型:
使用$row['name']
代替$row->name
文档:http://ellislab.com/codeigniter/user-guide/database/results.html
答案 1 :(得分:2)
这里你使用了result_array()。所以它返回带有stdobject的数组的结果。所以你必须打印下面的类型。
$i=0;
foreach ($data as $row);
{
echo $row[$i]->user_id ."|";
echo $row[$i]->name ."|";
echo $row[$i]->fam ."|";
echo $row[$i]->type_name ."|".'<br>';
echo "<hr>";
$i++;
}
如果您当时只使用result(),则可以使用代码。
foreach ($data as $row);
{
echo $row->user_id ."|";
echo $row->name ."|";
echo $row->fam ."|";
echo $row->type_name ."|".'<br>';
echo "<hr>";
}
答案 2 :(得分:1)
您需要访问$row->user_id
和for循环中的其他数据,如"$row['user_id']"
答案 3 :(得分:0)
这些两种方式都经过测试得到了结果:
第一个是:
$data= $this->db->get()->result();
foreach ($data as $row)
{
echo $row->user_id ."|";
echo $row->name ."|";
echo $row->fam ."|";
echo $row->type_name ."|".'<br>';
echo "<hr>";
}
第二个:
$data= $this->db->get()->result_array();
foreach ($data as $row)
{
echo $row['user_id'] ."|";
echo $row['name'] ."|";
echo $row['fam'] ."|";
echo $row['type_name'] ."|".'<br>';
echo "<hr>";
}