2012-02-13 34 views
0

我在模型中有兩個函數,除了第二個函數需要查詢字符串中的數字和偏移量的限制外,兩個函數都在同一個事物中排隊。我叫兩個控制器,但只有第一個功能,我想要做什麼,第二返回0查詢rownumber並查詢限制失敗的內容

public function get_row_nums() 
    { 
     $commenttb="commenttb"; 
     $membertb="membertb"; 
     $query=sprintf("SELECT `%s`.* FROM `%s` JOIN `%s` ON (`%s`.userid=`%s`.userid)", 
       $commenttb, 
       $commenttb, 
       $membertb, 
       $commenttb, 
       $membertb); 
     $query=$this->db->query($query); 
     print_r($query->result_array()); 
     return $query->num_rows(); 
    } 
    public function get_comments($num,$offset) 
    { 
     $commenttb="commenttb"; 
     $membertb="membertb"; 
     $query=sprintf("SELECT `%s`.* FROM `%s` JOIN `%s` ON (`%s`.userid=`%s`.userid) LIMIT %d,%d", 
       $commenttb, 
       $commenttb, 
       $membertb, 
       $commenttb, 
       $membertb, 
       $num, 
       $offset); 

     $query=$this->db->query($query); 
     print_r($query->result_array()); 
     return $query; 
    } 

這裏是在格蘭控制器功能

public function get_comments() 
    { 
     if(!file_exists('application/views/blog/list_comment_view.php')) 
     { 
      show_404(); 
     } 
     else 
     { 
      $userid=$this->get_userid(); 
      $row_nums=$this->blog->get_row_nums(); 
      $config['base_url']=base_url().'index.php/blog/list_comment_view'; 
      $config['total_rows']=$row_nums; 
      print_r($row_nums); 
      $config['per_page']=5; 
      $config['num_links']=2; 
      $config['full_tag_open']='<p>'; 
      $config['full_tag_close']='<p>'; 
      $config['first_link']='First'; 
      $config['last_link']='Last'; 
      $this->pagination->initialize($config); 
      $data['comments']=$this->blog->get_comments($config['per_page'],$this->uri->segment(3)); 
      $this->load->library('table'); 
      $this->table->set_heading('No','Title','Created','Modified','Action'); 
      $this->load->view('blog/list_comment_view', $data); 
     } 
    } 

我試圖再次檢查並但我仍然不知道在源代碼中可能會犯的錯誤,即視圖加載時只會在第二次調用模型的第二個函數時打印Array()。我很感激任何幫助。

UPDATE:
設置我的配置文件中的base_url指向http://localhost/CodeIgniter/ 和我控制器還創建了一個文件夾命名的博客,我存儲所有東西。 我重置了我的默認路由「/ blog/LoginClassName」; 一切工作正常,這部分。

+0

您$查詢什麼是價值'$ this-> uri-> segment(3)'和生成的查詢是什麼樣的?你真的應該對這些查詢調用進行一些錯誤檢查。即使查詢字符串在語法上是完美的,數據庫查詢也不總是成功。 – 2012-02-13 04:41:24

+0

什麼$ config ['per_page']和$ this-> uri-> segment(3)打印。我很確定它們中的任何一個都是錯的 – 2012-02-13 04:42:02

+0

謝謝,它是5,0 – user1125233 2012-02-13 04:45:38

回答

0

正常的限度systax是

LIMIT OFFSET,LIMIT 

所以您的查詢應該這個樣子

SELECT commenttb.* FROM commenttb JOIN membertb ON (commenttb.userid=membertb.userid) LIMIT 0,5 

這意味着改變這個

$query=sprintf("SELECT `%s`.* FROM `%s` JOIN `%s` ON (`%s`.userid=`%s`.userid) LIMIT %d,%d", 
      $commenttb, 
      $commenttb, 
      $membertb, 
      $commenttb, 
      $membertb, 
      $offset, 
      $num);