【问题标题】:Which is the best pagination for displaying mysql records哪个是显示mysql记录的最佳分页
【发布时间】:2013-05-02 04:14:23
【问题描述】:

我有一个应用程序,用户可以在其中获取记录以进行报告。 但是我对使用 jquery 分页和 mysql 分页(LIMIT,OFFSET)感到困惑。

因为 jquery 分页需要所有记录没有限制,所以分页发生在客户端,这可能会减慢查询速度。

mysql 可以在哪里使用限制(我使用的是 codeigniter 框架),但每次我点击分页时,它都会 ping 数据库以获取下一组数据,并且 mysql 分页正在创建重复记录。

有没有好的快速的分页方式,如果有,请给我建议。

谢谢……

【问题讨论】:

  • mysql 分页创建重复记录是什么意思?
  • 如果第一页有记录A、记录B、记录C、记录D,第二页又出现记录C、记录D、记录E,在C和D重复的地方出现记录F。
  • 请发布您的查询和控制器部分
  • 最好通过限制sql查询中的记录来限制服务器端的结果。它有助于您的数据库并减少用户查看页面时的加载时间。
  • 查看 CodeIgniter 的用户指南,它内置了 Pagination 类。

标签: php jquery mysql codeigniter


【解决方案1】:

我是这样分页的……

public function page($category_id)
{

$result = $this->model_file->model_function($category_id);

$start_index = 0;

$total_rows = count($result);

$items_per_page = 10;

$filtered = array_splice($result,$start_index,$items_per_page);

$model['data'] = $filtered;

$model['page_link'] = create_page_links (base_url()."/controller_file_name/page", $items_per_page, $total_rows);

$this->load->view('view_file_name_path',$model);

}

function create_page_links($base_url, $per_page, $total_rows) {

$CI = & get_instance();
$CI->load->library('pagination');

$config['base_url'] = $base_url;
$config['total_rows'] = $total_rows;
$config['per_page'] = $per_page; 

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

return $CI->pagination->create_links();

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-24
    • 2011-03-10
    • 1970-01-01
    • 2011-06-15
    • 2014-01-01
    • 1970-01-01
    • 2015-05-31
    • 2012-01-10
    相关资源
    最近更新 更多