2014-11-18 2 views
0

Я не знаю, что случилось с моим кодом ..Codeigniter отображая сообщение

Я пытаюсь отобразить сообщение из базы данных, но я продолжаю получать сообщение об ошибке, что $ результаты не определены.

Контроллер

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: вот что мой код выглядит сейчас

ответ

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

nope, уже пробовал, что .. не исправить мою проблему – user3507763

+0

если это не сработает, тогда print_r (data ['result']); расскажите, что он выводит. –

+0

Сообщение: Неопределенная переменная: данные – user3507763

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

Пожалуйста, проверьте. Теперь он должен работать. – Pupil

+0

Я его отредактировал .. ваш код полностью сломал его:/ Ошибка анализа: синтаксическая ошибка, неожиданное «как» (T_AS) в C: \ wamp \ www \ application \ views \ home_view.php в строке 11 – user3507763

+0

Мой код не имеет ошибок. Пожалуйста, отлаживайте код. – Pupil

0

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

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

Access в целях, как это:

foreach($result as $row){ 

} 

Вы используется в качестве results в Еогеасп вместо result

+0

Здравствуйте, я изменил его на результаты .. он все еще не работает – user3507763

+0

Попробуйте 'print_r ($ data ['results']); exit;' для проверки данных есть или нет в контроллере. – Gowri

+0

Сообщение: Неопределенная переменная: данные – user3507763

0

Вид:

Ваш код

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

изменение

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

Я изменил это, он все еще не работает – user3507763

+0

, сколько доступных записей в таблице «сообщений»? – virendra

+0

13 записей в таблице сообщений – user3507763

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 ...но если я попытаюсь просто добраться туда нормально, это не покажет: / – user3507763

Смежные вопросы