2012-06-02 4 views
-2

CI 문서에서 천국처럼 쉽게 보이지 않는 것 같아요.
나는 문제와 문제점을 찾는데 많은 시간을 할애했다. 프레임 워크 PHP는 쉽고 빨리해야합니까? 그것이 존재하는 이유는 무엇입니까?CodeIgniter 페이지 매김 : URI 세그먼트

$config['base_url'] = site_url('admin/index/page/'); 
$config['uri_segment'] = 4; 

MySQL의 SQL 결과 : SQL 출력에서 ​​볼 수 있듯이

SELECT b.*, a.adCampaignTitle FROM ads a, sms b WHERE b.`smsAd_ID`=a.ad_ID LIMIT 4, 20 

이 uri_segment 그냥 정수 값 같은 역할을

여기 내 코드입니다. 아무것도 더. 그리고 생성 페이지 매김의 모든 페이지, SQL 출력은 동일합니다! 내가 그것을 좋아하려고 할 때 :

$offset = $this->uri->segment(4); 

SQL 잘 작동하지만 매김은 (링크를 만들 수)가 제대로 작동하지 않습니다. 모든 페이지 번호에서 첫 번째 페이지의 링크가 사라졌습니다.

* 정말이 문제에 대해 알고 계시다면 알려 주시기 바랍니다. 아나스타샤처럼 정말 아프고 지쳤어.

답변

1

나는 이것이 당신의 문제인지 확신 할 수 없지만 페이지 네이션이 올바르게 작동하기 위해서는 얼마나 많은 행이 있는지도 말해야한다고 생각한다.

그래서 다음을 추가하십시오 : $config["total_rows"] = /*total number of records returned by the query, without the limit */ 그리고 도움이되는지 확인하십시오.

정확하게 설정하는 방법에 대한 아이디어는 this article을 통해 읽습니다.

+0

음란 한 언어는 사용하지 않지만 WTF는 사용합니까? 당신은 코드 전체를 게시하지 않으며, 당신이 말하는 것을 도대체 어떻게 추론 할 것으로 기대합니까? 나는 깨진 영어를 지나칠 수 있지만, 무엇이든지,하지만 당신을 도우려고 노력하는 사람을 얼마나 잘 때리는 지보십시오. – Ben

+0

실제로 90 %의 사람이 쓸모없는 데이터를 묻고 여기서 쓴 것을 읽지 않습니다. 당신이 어떤 사람을 도우려고하는 동안 적어도 당신을 방해하는 것이 방해 받았다는 것을 알고 계십니까? 나는이 페이지 매김 문제를 며칠 동안 붙잡고 적절한 해결책을 찾을 수 없기 때문에. 그리고 나는 말했다 : $ config [ 'base_url'] = site_url ('admin/index/page /'); $ config [ 'uri_segment'] = 4; 내 문제를 설명하기 위해 더 적절한 영어가 필요합니까? 적절한 영어가 필요하다면 문학과 또는 다른 곳으로 가십시오 ... 사람들을 돕지 않기 위해 여기에 온 것은 분명한 사실입니다. –

+3

@onder : 충고 한마디. 도우려는 사람들을 존중하십시오. 당신은 그들에게 돈을 지불하지 않습니다. – itachi

0

나는 HMVC를 사용하고 있으며 작업 할 페이지 매김과 동일한 문제가 있습니다. 하지만 HMVC 또는 CI에서 MVC를 사용하여 세그먼트 3을 사용하여 작동하도록했습니다. 세그먼트 4를 사용할 때 작동하지 않습니다. 나는 이유를 모른다. 실제로 세그먼트 번호 4를 사용해야하기 때문에 큰 문제가됩니다.이 버그는 CI의 다음 릴리스에서 해결할 수 있습니다.

2

이 질문은 2 살입니다. 비슷한 문제가 있었는데이 페이지까지 봤어. 그것을 본다면, 누군가가 비슷한 문제를 안고있는 경우를 대비하여 대답하지 않았습니다. 당신은 당신의 페이지 매김 "링크"(이전, 1,2,3,4, 다음) 페이지 매김의 첫 페이지가 제대로 작동하지 않을 경우 위에서 언급 한 바와 같이 오류를 해결하기 위해

$config['uri_segment'] = $this->uri->total_segments(); 

를 사용할 수 있습니다.

0

HMVC 사용 : 세그먼트 diffrent 문제

링크 : 도메인] .COM/관리/로그/log_list/1분의 10

해결 :

$config['uri_segment'] = 5; 

전체 코드 :

에게
public function data_count($sql){ 

    $query = $this->db->query($sql); 
    return $query->num_rows(); 

} 

public function get_list($sql,$url,$show,$page){ 

    $list = array(); 
    $this->load->library('pagination'); 
    $this->load->helper('url'); 
    $total = $this->data_count($sql); 

    $config = array(
     'base_url'   => $url, 
     'total_rows'  => $total, 
     'per_page'   => $show, 
     'num_links'   => 5, 
     'use_page_numbers' => true, 
     'page_query_string' => false, 
     'uri_segment'  => 5, 
     'full_tag_open'  => '<ul class="pagination pull-right">', 
     'full_tag_close' => '</ul>', 
     'first_link'  => '<<', 
     'first_tag_open' => '<li>', 
     'first_tag_close' => '</li>', 
     'last_link'   => '>>', 
     'last_tag_open'  => '<li>', 
     'last_tag_close' => '</li>', 
     'next_link'   => '>', 
     'next_tag_open'  => '<li>', 
     'next_tag_close' => '</li>', 
     'prev_link'   => '<', 
     'prev_tag_open'  => '<li>', 
     'prev_tag_close' => '</li>', 
     'cur_tag_open'  => '<li class="active"><a>', 
     'cur_tag_close'  => '</a></li>', 
     'num_tag_open'  => '<li>', 
     'num_tag_close'  => '</li>' 
    ); 


    $this->pagination->initialize($config); 
    $pagination = $this->pagination->create_links(); 
    $list["pagination"] =$pagination; 

    if(!empty($page)){ $start = ($page*$show)-$show; } else { $start = 0; } 

    $query = $this->db->query($sql." limit ".$start." , ".$show); 

    if($query->num_rows()>0){ 
     $list["list"] = $query->result_array(); 
    } 
    else{ 
     $list["list"] = ""; 
    } 

    $list["total"] = $total; 

    return $list; 

}