2012-02-13 8 views
0

두 번째 함수는 쿼리 문자열에서 숫자 및 오프셋의 제한을 필요로한다는 점을 제외하면 둘 다 동일한 작업을 대기시킵니다. 내가 컨트롤러 모두를 호출하지만, 첫 번째 기능은 내가 0rownumber를 쿼리하고 한도로 내용을 쿼리하지 못했습니다.

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); 
     } 
    } 

TEH 컨트롤러의 기능이며, 두 번째 복귀를 원하는 것을하고 다시 한 번, 뷰의로드 된 Array()가 모델의 두 번째 함수에 대한 두 번째 호출에서 소스 코드에서 발생했을 수있는 가능한 실수가 어디인지 아직 모르겠습니다. 어떤 도움을 주셔서 감사합니다.

UPDATE :
I 설정은 설정 파일 내 BASE_URL이 http://localhost/CodeIgniter/ 를 가리 키도록 내가 모든 물건을 저장하는 곳 나는 또한 컨트롤러에 이름 블로그 폴더를 만들었습니다. 기본 경로 "/ blog/LoginClassName"을 재설정했습니다. 이 부분까지 모든 것이 잘 작동합니다.

+0

에 $ 쿼리를 변경할 뜻이

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

과 같아야입니다 '$ this-> uri-> segment (3)'그리고 생성 된 질의는 어떻게 생겼을 까? 이러한 쿼리 호출에 대해 약간의 오류 검사가 있어야합니다. 쿼리 문자열이 구문 상 완벽하더라도 데이터베이스 쿼리는 항상 성공하지는 않습니다. –

+0

$ config [ 'per_page']와 $ this-> uri-> segment (3)는 무엇을 인쇄합니까? 나는 그들 중 하나가 틀렸다는 것을 알고있다 –

+0

감사합니다, 그것은 5, – user1125233

답변

0

적절한 LIMIT의 systax는

LIMIT OFFSET,LIMIT 

그래서 쿼리 의 값 이것은 무엇

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