CodeIgniter分页:uri段

时间:2012-06-02 23:17:15

标签: php codeigniter pagination

我认为在CI文档中向用户显示它似乎并不容易 我花了很多时间来寻找问题和问题。框架php应该很容易,快速做到吗?这就是他们存在的原因?

这是我的代码:

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

Mysql Sql结果:

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

如在sql输出中所见,uri_segment就像一个整数值。而已。而且创建的任何页面分页,sql输出都是一样的! 当我尝试它时:

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

SQL工作正常,但分页(创建链接)无法正常工作。第一页的链接在每个页码中都消失了(只是)。

* 如果你真的对这个问题有所了解,请发帖。我像阿纳斯塔西娅一样生病和疲惫......

4 个答案:

答案 0 :(得分:4)

这个问题是2岁。我有一个类似的问题,谷歌搜索到这个页面。看来,如果有人遇到类似的问题,它还没有得到回答。你可以使用

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

要解决您的分页“链接”(上一个,1,2,3,4,下一个)错误,如上所述,您的第一页分页将无法正常工作。

答案 1 :(得分:1)

我无法确定这是你的问题,但我相信你需要说出有多少行,以便分页正常工作。

所以添加:$config["total_rows"] = /*total number of records returned by the query, without the limit */并查看是否有帮助。

另请阅读this article,了解有关如何正确设置的一些想法。

答案 2 :(得分:0)

我正在使用HMVC,我在分页上遇到了同样的问题。但是我设法通过使用段3使用HMVC或仅使用MVC在CI中工作。当我使用段4时它不起作用。我不知道为什么。这也是我的大问题,因为我真的需要使用段号4.我回家这个bug可以在CI的下一个版本中解决。

答案 3 :(得分:0)

使用HMVC:段不同的问题

链接:[domain] .com / admin / logs / log_list / 10/1

解决了:

$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;

}