【发布时间】:2017-01-17 04:14:30
【问题描述】:
您好,我被困在 codeigniter 分页上。我得到总共 6 行,每页显示 2 行。
我正在获取分页链接 {Page: 1,2,3},其中 1 不可点击。
点击第 2 页时,我的链接看起来像 localhost/demo/index.php/home/press/?per_page=0/2 但我在 sql 上遇到错误
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“/2,2”附近使用正确的语法
SELECT * FROM media where media_type = 'PRESS' AND id <> 0 ORDER BY id DESC LIMIT 0/2
同样的错误,当我点击链接时获得分页链接:3 我不知道如何解决这个问题。我正在分享我在控制器、模型和视图上使用的代码。
我的控制器代码:
function press()
{
$this->load->model('Home_model');
$page= $this->input->get('per_page') ? $this->input->get('per_page') : 0;
$this->load->library('Pagination');
$data['page'] = $this->input->get('page');
if($data['page'] == '') {
$data['page'] = $config['per_page'] = '2'; // Per Page
} else {
$data['page'] = $config['per_page'] = $this->input->get('page');
}
$config['first_url']='0';
$pageno = $this->input->get('per_page');
if($pageno == ''){
$pageno = '0';
}
$url_to_paging = $this->config->item('base_url');
$config['base_url'] = $url_to_paging.'home/press/?per_page='.$page;
$return = $this->Home_model->pressdata($config['per_page'],$pageno, $data);
$data['pressdata'] = $return['result']; // Get Two Row Data
$config['total_rows'] = $return['count']; // Total Count 6
$this->pagination->initialize($config);
$this->load->view('press',$data);
}
型号:
function pressdata($pg_num, $offset, $content)
{
if($offset == ''){
$offset = '0';
}
$sql = "SELECT * FROM media where media_type = 'PRESS' AND id <> 0";
if($pg_num!=0 || $pg_num!="")
{
$sql .= " ORDER BY id DESC LIMIT ".$offset.",".$pg_num;
}
$query = $this->db->query($sql);
$sql_couint = "SELECT * FROM media where media_type = 'PRESS' AND id <> 0";
$query1 = $this->db->query($sql_couint);
$ret['result'] = $query->result();
$ret['count'] = $query1->num_rows();
return $ret;
}
【问题讨论】:
-
我写过关于 Cdeigniter 分页的教程。请查看并提出您的建议cloudways.com/blog/pagination-in-codeigniter
标签: php codeigniter codeigniter-3