Codeigniter显示消息

时间:2014-11-18 05:35:52

标签: php codeigniter

我不知道我的代码有什么问题..

我正在尝试显示来自数据库的消息,但我一直在收到$ results未定义的错误。

控制器

public function getMessages()
    {
        $this->load->model('get_message');

        $data['results']= $this->get_message->getMessage();

        $this->load->view('home_view', $data);
    }

模型

 <?php
class get_message extends CI_Model{
    function getMessage(){
       $query = $this->db->query("SELECT * FROM messages");
        return $query->result_array();
    }
}

查看

<!DOCTYPE html>
<html>
  <head>
    <title>Home</title>
  </head>
  <body>
    <h1>Home</h1>
    <h2>Welcome <?php echo $username; ?>!</h2>
    <div id="Main">
        <?php
        foreach($results->result() as $row){
            echo $row ->id;
            echo $row ->user_username;
            echo $row ->text;
            echo $row ->posted_at;
            echo "<br/>";
        }
        ?>
    </div>
    <a href="home/logout">Logout</a>
  </body>
</html>

编辑:这是我的代码现在的样子

5 个答案:

答案 0 :(得分:0)

您将错误的元素传递给视图。

$data['result']= $this->get_message->getMessage();
             ^

应该是

$data['results']= $this->get_message->getMessage();
             ^

同样在模特中,

return $query->result();

应该是:

return $query;

在视野中,

foreach($results as $row){

应该是

if ($results->num_rows()) { // IN CASE, THE RESULT HAS NO ROWS.
  foreach($results->result() as $row) {

答案 1 :(得分:0)

在控制器中,您将数据发送为result

 $data['result']= $this->get_message->getMessage();

在视图中访问:

foreach($result as $row){

}

您在foreach中使用results而不是result

答案 2 :(得分:0)

查看:

您的代码

foreach(**$results** as $row){
}
?>

更改为

foreach(**$result** as $row){
}
?>

答案 3 :(得分:0)

控制器

 public function index()
        {
            $this->load->model('get_message');

            $data['results']= $this->get_message->getMessage();

            $this->load->view('home_view', $data);
        }

模型

<?php
class get_message extends CI_Model{
    function getMessage(){
       $query = $this->db->query('SELECT * FROM messages');
       return $query->result_array();
    }
}

视图

<!DOCTYPE html>
<html>
  <head>
    <title>Home</title>
  </head>
  <body>
    <h1>Home</h1>

    <div id="Main">
        <?php
        foreach($results as $row){
            echo $row['id'];
            echo $row['user_username'];
            echo $row['text'];
            echo $row['posted_at'];
            echo "<br/>";
        }
        ?>
    </div>

  </body>
</html>

此代码有效。如果不是,那你就做错了。

答案 4 :(得分:0)

尝试在控制器函数中获得其他变量的结果 -

public function getMessages()
{

    $this->load->model('get_message');

    $data['msgesult']= $this->get_message->getMessage();

    $this->load->view('home_view', $data);
}

然后在视野中 -

<div id="Main">
    <?php
    foreach($msgesult as $row){
        echo $row['id'];
        echo $row['user_username'];
        echo $row['text'];
        echo $row['posted_at'];
        echo "<br/>";
    }
    ?>
</div>

这应该有用。