php - Codeigniter 中的 result_array() ActiveRecord

标签 php mysql codeigniter activerecord

请看这个查询:

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

关于php - Codeigniter 中的 result_array() ActiveRecord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20994014/

相关文章:

插入 PHP 时的 MySQL 编码

php - 具有社交网站集成的最佳 codeigniter 2.1 身份验证库

php - 无法解决的MySQL错误?

php - 可以收集哪些有关 Facebook 应用程序使用情况的统计数据?

php - 使用一个 MySQL 查询将特定结果带到前面

MySQL where 子句定位依赖子查询

MYSQL查找子查询中两个计数列的差异

php while循环不正确地显示sql数据

php - 无法使用 PhpMailer 和 Codeigniter 通过 Outlook SMTP 发送电子邮件

php - 使用自定义 htaccess mod 重写时有效路由上的 Codeigniter 404