2013-06-03 68 views
0

我试图使用CI分页,问题是,例如:我点击了分页数字2,它显示了我在一页中的所有7000行。分页与CI

我的控制器:

public function inicio() { //reporte 
    $campus=$this -> session -> userdata('campus'); 

    $this->load->library('pagination'); 

    $config['base_url'] = 'http://zeus.xochicalco.edu.mx/saii/sorteos/login/inicio'; 
    $config['total_rows'] = 7000; 
    $config['per_page'] = 20; 

    $this->pagination->initialize($config);  


    $data['boletos'] = $this->model_sorteos->reporte($campus);   
    $this -> load -> view('/pages/sorteos/template', $data); 
} 

这是我的模型:

public function reporte($campus,$offset=0){ 
    $x1=0; $x2=0; 
    $id=1; 
    $s= new Sorteo(); 
    $s -> where('nombre','Sorteo 9') -> get(); 
    $s->boleto->where('folio >='.$x1.' AND folio <= '.$x2.' ')->get(); 
    $i=0; 
    $boletos=array(); 
    foreach($s->boleto as $bol){ 

     $b = new Boleto(); 
     $b->where('id',$bol->id)->get(); 
     $b->vendedor->get(); 
     $b->condicion->get(); 
     $b->estado->get(); 
     $b->comprador->get(); 

     $boletos[$i]=array(
         'boleto' => $b->folio, 
         'estado' => $b->estado->nombre, 
         'condicion' => $b->condicion->nombre, 
         'vendedor' => $b->vendedor->nombre." ".$b->vendedor->apellido_paterno." ".$b->vendedor->apellido_materno, 
         'comprador' => $b->comprador->nombre." ".$b->comprador->apellido_paterno." ".$b->comprador->apellido_materno  
     );    
     $i++;   
    } return $boletos; } 

的观点:

<table class="table table-striped table-bordered" style="" > 
      <tr> 
       <td>Boleto</td> 
       <td>Estado</td> 
       <td>Condicion</td> 
       <td>Vendedor</td> 
       <td>Comprador</td> 
      </tr>  
<?php foreach($boletos as $b ){ ?>  
     <tr> 
      <td><?php echo $b['boleto']; ?></td> 
      <td><?php echo $b['estado']; ?></td> 
      <td><?php echo $b['condicion']; ?></td> 
      <td><?php echo $b['vendedor']; ?></td> 
      <td><?php echo $b['comprador']; ?></td> 
     </tr> 
<?php } echo $this->pagination->create_links(); ?> </table> </div> 

我在这个新的,一些帮助,好吗?在此先感谢

+0

什么在你的视图文件?您可以尝试告诉codeigniter偏移量在哪个uri中。例如:$ config ['uri_segment'] = 3; – jah

+0

我添加了视图,我有一个小问题,我不知道偏移是什么,以及如何使用或添加它在代码中。 – Laura

+0

正如你的例子,你想显示每页20。因此,前20行显示在第一页上,但第2页上显示的是20到40,因此第2页上的偏移量将为20。在第3页上,它将为40,依此类推。但是现在我看到你甚至不能传递模型的偏移量,看起来你甚至没有任何限制。 – jah

回答

0

在ci中的分页产生的设施来调用一个函数的参数(编号根据per_page。) 你必须使用一个参数发送这个数字的函数(其URL为基地给出)到模型并从数据库中获取行。 控制器

/** 
* @author Aniket Singh<[email protected]> 
* @package Page 
* This is the main class of this file 
*/ 
class Page extends CI_Controller{ 
    /** 
    * @package Page 
    * This is the constructor function of the Page class 
    */ 
    function __construct(){ 
     parent::__construct(); 

    } 
    /** 
    * This function will implement the concept of pagination 
    * @package Page 
    * @param $entry decide the the starting row no. in a table while fetching data 
    */ 
    function test($entry=0){ 
     $data=array(); 
     $this->load->library('pagination'); 
     $config['base_url'] ="http://localhost/ci/page/test"; 
     $config['total_rows'] = 4000; 
     $config['per_page'] = 20; 
     $this->pagination->initialize($config); 



     $this->load->model('dbpage'); 
     //Fetch 20 rows at a time staring with id=$entry and save them into $data['entries'] 
     $data['entries']=$this->dbpage->get_entries($entry); 
     $this->load->view('mypage',$data); 

    } 
} 

型号

class Dbpage extends CI_Model { 

    function __construct(){ 
     parent::__construct(); 
    } 

    function get_entries($entry=0) 
    { 
     $query = $this->db->get('City', 20, $entry); 
     return $query->result(); 
    } 

} 

视图

<html> 
<head> 
<title>Pagination</title> 
</head> 
<body> 
    <? php echo $this->pagination->create_links();?> 
    <table> 
     <tr> 
      <th> ID</th> 
      <th>Name</th> 
      <th>Country code</th> 
      <th>District</th> 
      <th>Population</th> 
     </tr> 
     <?php foreach ($entries as $key=>$value){?> 
      <tr> 
       <td><?php echo $value->ID?></td> 
       <td><?php echo $value->Name?></td> 
       <td><?php echo $value->CountryCode ?></td> 
       <td><?php echo $value->District ?></td> 
       <td><?php echo $value->Population ?></td> 
      </tr> 
     <?php }?> 
    </table> 
</body> 
</html> 

这将帮助你了解分页的概念。