2017-04-25 53 views
0

我試圖在搜索後從數據庫檢索名稱列表,並且由於搜索的性質,我必須使用自定義sql而不是默認的codeigniter one 。 由於我需要做分頁,我必須使用動態限制和偏移量。但是,我發現它沒有給我正確的結果。我已經測試了這個查詢在MySQL中,它的工作原理。我不確定我要去哪裏錯。請幫助帶限制和偏移量的CodeIgniter sql查詢不顯示結果

我的模型:

public function count_search($id,$input){ 
     $sql = "SELECT * FROM contacts WHERE CONCAT_WS(' ', first_name, last_name) LIKE '%$input%'"; 
     $query = $this->db->query($sql); 
     $count = $query->num_rows(); 
     if($count>0){ 
      return $count; 
     }else{ 
      return 0; 
     } 
    } 

public function search($limit,$start,$id,$input){ 
      $sql = "SELECT * FROM contacts WHERE CONCAT_WS(' ', first_name, last_name) LIKE '%$input%'"; 
      $query = $this->db->query($sql); 
      if($query->num_rows()>0){ 
       foreach($query->result()as $row){ 
        $contacts[] = $row; 
       } 
       return $contacts; 
      } 
      return false; 
    } 

回答

0

試試這個..你忘了提及你的查詢限制參數

public function search($limit,$start,$id,$input){ 
     $sql = "SELECT * FROM contacts WHERE CONCAT_WS(' ', 
     first_name, last_name) LIKE '%$input%' Limit ".$start.",".$limit; 
     $query = $this->db->query($sql); 
     if($query->num_rows()>0){ 
      foreach($query->result()as $row){ 
       $contacts[] = $row; 
      } 
      return $contacts; 
     } 
     return false; 
} 
+0

使用相同的count_search –

+0

嗨!感謝回覆。我試過,但我得到這個錯誤:你的SQL語法有錯誤;檢查與您的MySQL服務器版本對應的手冊,以在第1行'%grac%LIMIT 0,1'附近使用正確的語法。 SELECT * FROM contacts WHERE CONCAT_WS('',first_name,last_name)LIKE'%grac %LIMIT 0,1 – JianYA