2012-03-07 76 views
1

是否有更好的方法從表中檢索行數?目前我有這裏面也返回一個錯誤,如果沒有結果:如何正確檢索num_rows | Codeigniter

錯誤:遇到 一個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(); 

回答

3

試試這個:

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; 
    } 
+0

謝謝。我不得不做很小的改動,但是'return $ query-> num_rows()'和'return false'讓我朝着正確的方向前進。 – Ciprian 2012-03-07 21:06:48

+0

我有我的所有模型或者返回我的數據庫結果,或者爲false。然後在我的控制器中,我總是使用該檢查。 – Catfish 2012-03-07 21:07:51

+0

非常酷。你幫了我很多。謝謝。 – Ciprian 2012-03-07 21:17:44