2010-12-01 74 views
1

我尝试了很多,但似乎无法弄清楚这一点,任何帮助表示赞赏。我的文章有投票,而且我有一个应该显示投票数最多的文章的页面。我使用codeigniter btw。 控制器:codeigniter分页不按预期工作

function most_voted() 
    { 
     $per_page = 3; 
     $cur_page = $this->uri->segment(4); 
     /* 
     if($cur_page == "") $cur_page = 1; 
     else $cur_page = (integer)$cur_page; 
     */ 
     $offset = ($cur_page - 1) * $per_page; 
     if($offset < 0) $offset = 0; 
     $this->load->model('article_model'); 
     $result_rows = $this->article_model->GetMostVoted($per_page,$cur_page); 
     $total_rows = sizeof($result_rows) + 10; 
     echo "total rows is : ".$total_rows.'<br>'; 
     echo "cur page is : $cur_page <br>"; 

     //$this->load->library('pagination'); 
     $config['base_url'] = base_url().'articles/most_voted/page/'; 
     $config['uri_segment'] = 4; 
     $config['num_links'] = 3; 
     $config['first_link'] = '<<First'; 
     $config['last_link'] = 'Last>>'; 
     $config['prev_link'] = '< Previous'; 
     $config['next_link'] = 'Next >'; 
     $config['total_rows'] = $total_rows; 
     $config['per_page'] = $per_page; 
     $this->pagination->initialize($config); 


     $data['articles'] = $result_rows; 
     $data['view_file_name'] = 'articles/all_articles_view'; 
     $this->load->view('includes/template',$data); 
     //echo $this->db->last_query(); 
    } 

模型:

function GetMostVoted($limit,$offset) 
    { 
     $this->db->order_by('votes','desc'); 
     $q=$this->db->get('cgh_articles',$limit,$offset); 
     if($q->num_rows() > 0) 
     { 
      foreach($q->result() as $row) 
      { 
       $data[] = $row; 
      } 
      return $data; 
     } 
    } 

问题: 的问题是,虽然我得到分页等 <上一页1 2 3 4 5下一页> 但点击2前进到网址:page/3 点击3去url:page/6 点击4去url:page/9 等等。 我想点击2转到第2,3页到第3页,等等。任何有关什么是错误的建议?

如果您需要更多信息,请让我知道,谢谢。

回答

3

分页类的工作方式是返回页面应该启动的项目。

例如,url:hostanme/controller/page/9意味着页面应该从第9个投票文章开始渲染。请参阅codeigniter documentation中的示例。

此外,您有$total_rows = sizeof($result_rows) + 10;。这是为什么 ?

+0

谢谢,jd。 sizeof($ result_rows)+ 10只是一个我现在硬编码的整数。我将用返回的实际结果数替换它。那么,你的意思是默认的ci分页不会给我什么我想要的? – SIndhu 2010-12-01 20:38:28