遇到PHP错误严重性:通知消息:未定义属性:stdClass :: $ moderator_id,使用codeigniter

时间:2013-03-04 05:48:48

标签: php codeigniter

嘿伙计们我是codeigniter的新手,我正在开发一个应用程序,我必须从mysql数据库中获取数据,为此我在控制器中创建两个视图和两个函数来处理视图。 。问题是我在一个视图中出错,而在另一个视图中它的工作正常。 。 。两个视图都有相同的代码。 。 。错误在哪里帮助。

两个视图中的代码

 <?php foreach ($rows as $row):?>
            <tr>
                <td><?php echo anchor("Home/edit_moderator/" . $row->member_id, 'Edit'); ?></td>
                <td><a href="<?php echo site_url("dbcont/deletemoderator/" . $row->member_id);?>" onclick="return confirm('Delete content?');">Delete</a></td>
                <td><?php echo $row->member_name;  ?></td>
                <td><?php echo $row->moderator_id;  ?></td>
                <td><?php echo $row->kcc_branch;  ?></td>
                <td><?php echo $row->father_name;  ?></td>
                <td><?php echo $row->address;  ?></td>
                <td><?php echo $row->date;  ?></td>
            </tr>
            <?php endforeach; ?>

当我获取moderator_id

时出错
<td><?php echo $row->moderator_id;  ?></td>

在它获取的第一个视图中,但在第二个视图中它没有。

编辑:

这是模型

function get_moderators(){ 

    $select =   array(
                    'member_id', 
                    'member_name', 
                    'father_name', 
                    'date', 
                    'kcc_branch', 
                    'date_of_birth', 
                    'address', 
                    'phone', 
                    'mobile', 
                    'occupation', 
                    'pan', 
                    'bank_name', 
                    'bank_acc_no', 
                    'bank_branch', 'moderator'
    );

$this->db->select($select); 
$this->db->where('moderator', 1); 
$q = $this->db->get('tbl_members'); 
    if($q->num_rows() > 0) { 
        foreach ($q->result() as $row) { 
            $data[] = $row; 
        }
        return $data; 
    } 
}

2 个答案:

答案 0 :(得分:0)

我得到了答案。 。我的错误是我没有在选择查询中选择moderator_id。回答家伙的答案是什么。

function get_moderators(){ 

$select =   array(
                'member_id',
                'moderator_id', 
                'member_name', 
                'father_name', 
                'date', 
                'kcc_branch', 
                'date_of_birth', 
                'address', 
                'phone', 
                'mobile', 
                'occupation', 
                'pan', 
                'bank_name', 
                'bank_acc_no', 
                'bank_branch', 'moderator'
);


$this->db->select($select); 
$this->db->where('moderator', 1); 
$q = $this->db->get('tbl_members'); 
if($q->num_rows() > 0) { 
    foreach ($q->result() as $row) { 
        $data[] = $row; 
    }
    return $data; 
} 
}

答案 1 :(得分:0)

你可以摆脱select数组,只需使用

  

$这 - &GT; DB-&GT;选择(&#39; *&#39);

也应该有用

我遇到了类似的错误,结果发现我的数据库选择语句错误了。 这是坏事:

  

$ this-&gt; db-&gt;选择(&#39; field1&#39;,&#39; field2&#39;,&#39; field3&#39;,&#39; field4&#39;) ; //坏代码

这是正确的方法:

  

$ this-&gt; db-&gt; select(&#39; field1,field2,field3,field4&#39;); //好

  

$这 - &GT; DB-&GT;选择(&#39; *&#39); //还是不错的

最好的问候