繁体   English   中英

result_array()Codeigniter中的ActiveRecord

[英]result_array() ActiveRecord in Codeigniter

请查看以下查询:

$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" } } 

但是在“ foreach ”部分,每行显示以下错误:

A PHP Error was encountered
Severity: Notice
Message: Trying to get property of non-object
Filename: models/user_model.php
Line Number: 47

如果有人可以帮助我,我将不胜感激。

您应该使用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

在这里,您使用了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>";
}

您需要在$row->user_id循环中访问$row->user_id和其他数据,例如"$row['user_id']"

这些拖曳是经过测试的,我得到结果:

第一个是:

$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>";

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM