飞翔 发表于 2010-9-15 15:04:58

分页问题

控制器里面代码
//分页      
function customer_phone($offset=''){
            $this->load->library('pagination');
            $data['baseurl']=site_url();
            $limit=1;
            $condition="from tel_count as a join customer as b on a.cus_id=b.id";
                $totals=$this->admin_model->count_product($condition);
                $total=$totals->count;
                $data['customer_phone']=$this->admin_model->customer_phone_info($limit,$offset);
                $config['base_url'] = base_url().'home/customer_phone/';
                $config['total_rows'] = $total;
                $config['per_page'] = $limit;
                $this->pagination->initialize($config);
                $data['pag_links']= $this->pagination->create_links();
      $this->load->view('customer_phone.html',$data);
}

//模板里面方法
functioncustomer_phone_info($limit,$offset){
         $this->load->database();
         $this->db->limit($limit,$offset);
       $query_string="select a.*,b.* from tel_count as a join customer as b on a.cus_id=b.id";
       $result=$this->db->query($query_string);
       $resu=$result->result();
       return $resu;
}
function count_product($condition)
{
    $query="SELECT COUNT(*) AS count {$condition}";
    //echo $query; exit;
    $result=$this->db->query($query);
    return $result->result();
}

//视图里面代码啊!
<?phpif(!empty($customer_phone)){
foreach($customer_phone as $cus_ph){
echo "<tr>
    <td>{$cus_ph->id}</td>
    <td>{$cus_ph->cusName}</td>
    <td>{$cus_ph->cusMobile}</td>
    <td>{$cus_ph->cusEmail}</td>
    <td>{$cus_ph->cusUrl}</td>
    <td>{$cus_ph->cusCreateName}</td>
    <td>{$cus_ph->callin_tel}</td>
   <td>{$cus_ph->callin_status}</td>
    <td>{$cus_ph->callin_time}</td>
    <td>修改</td>
</tr>";
   } }else{
          echo "<tr><td colspan='7'>你没有查到想要内容</td></tr>";
}
?>
<tr class="page">
<td colspan="7"><?phpecho $pag_links; ?></td>
</tr>

我设置每页显示1条但是我现在还是全部显示! 我不知道什么原因!
没有检查出错。如果知道告诉一声!谢谢啊!

飞翔 发表于 2010-9-15 15:15:41

还行要改什么配置文件什么地方吗?

飞翔 发表于 2010-9-15 15:21:20

我查到数据库只有两条数据

飞翔 发表于 2010-9-15 15:22:00

我设置每页显示1条信息!

jeongee 发表于 2010-9-15 15:31:25

本帖最后由 ywqbestever 于 2010-9-15 15:37 编辑

模型里你怎么又用ar方法,又自己写sql语句啊,你要统一啊,你把limit和offset写你的$query_string 里面去

$this->db->limit($limit,$offset);这句删掉
$query_string="select a.*,b.* from tel_count as a join customer as b on a.cus_id=b.id ";
改成
$query_string="select a.*,b.* from tel_count as a join customer as b on a.cus_id=b.id limit $limit ,$offset ";

另外参数传递也有问题,你好好研究一下吧,理解CI的分页透彻点

phelps_liu 发表于 2010-9-15 15:47:16

肚子有点疼 晚些时候来看

飞翔 发表于 2010-9-15 16:13:56

function index() {
    $html = array();
    $this->load->library('pagination');
    $config['total_rows'] = $this->模型->fetch_count();
    $config['base_url'] = site_url(控制器名 . 'index');
    $this->pagination->initialize($config);
    $html['links'] = $this->pagination->create_links();
    $this->模型->set_limit($this->pagination->limit_string());
    //你要显示的数据
    $html['记录数组'] = $this->模型->fetch_result();
    $html['total_rows'] = $config['total_rows'];
    $this->load->view('view_path', $html);
}
这样写逻辑比较好
public function limit_string()
    {
      return $this->per_page . "," . $this->offset();
    }

    public function offset()
    {
      $total_page = ceil($this->total_rows / $this->per_page);
      if ($this->cur_page > $total_page)
            $this->cur_page = $total_page;
      if ($this->cur_page < 1 || ! is_numeric($this->cur_page))
            $this->cur_page = 1;
      return (int)($this->cur_page - 1) * $this->per_page;
    }
加在 Pagination

飞翔 发表于 2010-9-15 16:14:53

$config['uri_segment'] = 4;
这个只有当你的方法有参数时 才增加。一个参数加 1
原因:
//$CI->uri->segment 修改为$CI->uri->rsegment kis
                        if ($CI->uri->rsegment($this->uri_segment) != 0)
                        {
                                $this->cur_page = $CI->uri->rsegment($this->uri_segment);

                                // Prep the current page - no funny business!
                                $this->cur_page = (int) $this->cur_page;
                        }
页: [1]
查看完整版本: 分页问题