В настоящее время я работаю над системой личных сообщений. Сейчас я кодирую входящие и поместил 2 строки временных данных в свою таблицу сообщений, чтобы проверить, что входящие работают правильно.
Я пытаюсь вернуть все строки, где этот запрос верен:
<?php
class Messages_model extends CI_Model {
public function inbox()
{
$user_id = $this->session->userdata('user_id');
$username = $this->session->userdata('username');
return $this->db->query("SELECT * FROM messages WHERE to_id = $user_id AND to_user = '$username'"); //to_id = id of currently logged in and to_user = username
}
}
Вот мой контроллер. В настоящее время я возвращаю только одну строку, хотя обе строки должны быть возвращены. Я создал обе строки в БД с to_id и to_user, равными моим данным сеанса. Таким образом, они должны быть возвращены не только один. Когда я использую row_array, возвращается первая строка, как описано в руководстве пользователя CI. Когда я использую result_array (), все равно возвращается только одна строка.
Что я хочу сделать, это создать таблицу в формате HTML с несколькими столбцами и 1 строкой для заголовка каждого столбца, например. тема, статус, дата. Тогда в строке внизу будут фактические данные субъекта и статус сообщения. Затем я хочу запустить цикл while или foreach, который будет отображать эту пустую строку каждый раз, когда строка возвращается из таблицы сообщений для входящих сообщений.
Вот мой контроллер:
<?php
class Messages extends Public_Controller {
public function __construct() {
parent::__construct();
$this->load->model('messages_model');
}
public function inbox()
{
$query = $this->messages_model->inbox(); // return from model which is basically a row from messages table
if ($query->num_rows() != 0) // if rows returned is equal to 1
{
foreach ($query->result_array() as $row) // give array variable the value row_array
// grab specific elements from row and assign to variables
$row['id'];
$row['to_id'];
$row['to_user'];
$row['from_id'];
$row['from_user'];
$row['time_sent'];
$row['subject'];
$row['message'];
$row['opened'];
$row['replied'];
$this->load->view('messages/inbox', $row);
}
else
{
echo "You have 0 messages in your inbox";
}
}
}
Надеюсь, я объяснил, что я пытаюсь сделать.
Заранее спасибо.