Codeigniter else部分,但抛出一个奇怪的错误

时间:2014-02-14 22:51:41

标签: php codeigniter

                <?php
                    $q3 = $this->db->query("SELECT * FROM default_post_likes
                                            WHERE post_id = $row->id");
                    $row2 = $q3->row();
                    if ($row2->post_id == $row->id) {
                        echo 'Unlike';
                    } else {
                        echo '<a class="like" posterid="'.$row->creator_id.'" postid="'.$row->id.'" href="javascript:void(0)">Like</a>';
                    }
                ?>

由于某种原因,if部分工作正常,但是else工作并且回显数据但是抛出错误。我在Codeigniter中收到以下错误:

  

遇到PHP错误

     

严重性:注意

     

消息:尝试获取非对象的属性

     

文件名:views / dashboard.php

     

行号:74

有什么想法吗?

以下是我的其余代码:http://pastebin.com/4nCzxfY3

2 个答案:

答案 0 :(得分:0)

你应该弄清楚为什么缺少这些属性(你很难用你提供的信息来帮助你),但是为了快速修复,这应该是:

if ($row && $row2->post_id == $row->id) {
    echo 'Unlike';
} elseif ($row) {
    echo '<a class="like" posterid="'.$row->creator_id.'" postid="'.$row->id.'" href="javascript:void(0)">Like</a>';
}

我还避免在foreach循环中运行两个查询。

答案 1 :(得分:0)

你可以试试这个......

echo '<a class="like" posterid="'.$row[creator_id].'" postid="'.$row[id].'"
  href="javascript:void(0)">Like</a>';