Codeigniter, отображающий сообщение

0

Я не знаю, что случилось с моим кодом.

Я пытаюсь отобразить сообщение из базы данных, но я продолжаю получать ошибку, что $ 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>

EDIT: вот как выглядит мой код сейчас

Теги:
codeigniter

5 ответов

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>

Этот код работает. если это не так, вы делаете что-то еще неправильно.

  • 0
    Нет, уже пытался это .. не решил мою проблему
  • 0
    если это не работает, то print_r (data ['result']); расскажите что он выводит.
Показать ещё 13 комментариев
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>

Это должно сработать.

  • 0
    Привет, я понял, что код работает ... но только если я сам URL и вызову getMessages ... но если я пытаюсь просто добраться туда, как обычно, он не показывает: /
0

В контроллере вы отправляете данные как result

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

Получите доступ к следующим:

foreach($result as $row){

}

Вы использовали в качестве results в foreach вместо result

  • 0
    Здравствуйте, я изменил его на результаты .. он все еще не работает
  • 0
    Попробуйте print_r($data['results']);exit; проверить данные есть или нет в контроллере.
Показать ещё 5 комментариев
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) {
  • 0
    Пожалуйста, проверьте. Это должно работать сейчас.
  • 0
    Я отредактировал его ... ваш код полностью сломал его: / Ошибка синтаксического анализа: синтаксическая ошибка, неожиданное 'as' (T_AS) в C: \ wamp \ www \ application \ views \ home_view.php в строке 11
Показать ещё 4 комментария
0

Посмотреть:

Ваш код

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

изменить на

foreach(**$result** as $row){
}
?>
  • 0
    Я изменил это, это все еще не работает
  • 0
    сколько записей доступно в таблице "messages"?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню