CI的分页

时间:2013-06-03 18:33:18

标签: php codeigniter pagination continuous-integration

我正在尝试使用CI进行分页,问题在于,例如:我点击了分页的数字2,它向我展示了一页中的所有7000行。

我的控制器:

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>

我是新来的,请帮忙吗?提前致谢

1 个答案:

答案 0 :(得分:0)

ci中的分页产生了使用参数调用函数的工具(根据per_page,没有。) 您必须使用一个参数创建一个函数(其url在base中给出),该参数将此数字发送到模型并从数据库中获取Rows。  控制器

/**
 * @author Aniket Singh<aniketsingh@cedcoss.com>
 * @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>

这将有助于您理解分页的概念。