Как правильно получить num_rows | Codeigniter - PullRequest
1 голос
/ 08 марта 2012

Есть ли лучший способ получить количество строк из таблицы?В настоящее время у меня есть это, которое также возвращает ошибку, если нет результатов:

Ошибка: Обнаружена ошибка PHP

<p>Severity: Notice</p>
<p>Message:  Undefined property: Home::$count</p>
<p>Filename: core/Model.php</p>
<p>Line Number: 51</p>

</div>{"status":"ok","content":""}

Контроллер

 public function do_messages()
    {
            $this->load->model('message_model');
            $user_id = $this->input->post('user_id');
            $this->message_model->unread_msg($user_id);
            $mess = $this->message_model->unread_msg_count();
                    if(isset($mess)){
                            $result = array('status' => 'ok', 'content' => $mess);
                            echo json_encode($result);
                            exit();
                    }else{
                            $result = array('status' => 'ok', 'content' => '');
                            echo json_encode($result);
                            exit();
                    }
    }

Модель:

function unread_msg($user_id)
    {
            $query_str = "SELECT id FROM messages WHERE view = 0 AND dest = ?";
            $query = $this->db->query($query_str, $user_id);

            if($query->num_rows() > 0)
            {
                    $this->count = $query->num_rows();
            }
    }
    function unread_msg_count()
    {
    return $this->count;
    }

js файл:

function get_messages()
     {
         $.post(base_url + "index.php/home/do_messages", { user_id : user_msg }, function(data) {
         if (data.status == 'ok')
         {
         $(".new_msg").removeClass('hide').html(data.content);
         }
         else
         {
         }
     }, "json");
            }
    get_messages();

1 Ответ

3 голосов
/ 08 марта 2012

Попробуйте это:

public function do_messages()
    {
            $this->load->model('message_model');
            $user_id = $this->input->post('user_id');
            $this->message_model->unread_msg($user_id);
            $mess = $this->message_model->unread_msg_count();
                    if($mess != false){
                            $result = array('status' => 'ok', 'content' => $mess);
                            echo json_encode($result);
                            exit();
                    }else{
                            $result = array('status' => 'ok', 'content' => '');
                            echo json_encode($result);
                            exit();
                    }
    }

Модель:

function unread_msg($user_id)
    {
            $query_str = "SELECT id FROM messages WHERE view = 0 AND dest = ?";
            $query = $this->db->query($query_str, $user_id);

            if($query->num_rows() > 0)
            {
                    return $query->num_rows();
            } else {
                    return false;
            }
    }
    function unread_msg_count()
    {
    return $this->count;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...