Я не знаю, что случилось с моим кодом.
Я пытаюсь отобразить сообщение из базы данных, но я продолжаю получать ошибку, что $ 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: вот как выглядит мой код сейчас
контроллер
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>
Этот код работает. если это не так, вы делаете что-то еще неправильно.
Попытайтесь получить результат в какой-либо другой переменной в вашей функции контроллера -
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>
Это должно сработать.
В контроллере вы отправляете данные как result
$data['result']= $this->get_message->getMessage();
Получите доступ к следующим:
foreach($result as $row){
}
Вы использовали в качестве results
в foreach вместо result
print_r($data['results']);exit;
проверить данные есть или нет в контроллере.
Вы передаете неправильный элемент в представление.
$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) {
Посмотреть:
Ваш код
foreach(**$results** as $row){
}
?>
изменить на
foreach(**$result** as $row){
}
?>