php - 菜鸟MySql关于分页的问题;一次查询就够了吗?

标签 php sql mysql pagination

我几乎已经设法让分页工作了。 我想向用户显示,找到的记录总数,以及当前显示的记录。例如:

4000 found, displaying 0-100.

我正在使用 nr 2 对此进行测试(因为我没有那么多记录,大概有 20 条)。 所以我正在使用 LIMIT $start, $nr_results;

我是否必须进行两次查询才能以我想要的方式显示结果,一次查询获取所有记录,然后进行一次 mysql_num_rows 以获取所有记录,然后进行一次带有 LIMIT 的查询?

我有这个:

 mysql_num_rows($qry_result);
 $total_pages = ceil($num_total / $res_per_page); //$res_per_page==2 and $num_total = 2
    if ($p - 10 < 1) {
       $pagemin=1;
    }

否则{ $pagemin = $p - 10; } 如果($p + 10 > $total_pages){ $pagemax = $total_pages; } 别的 { $pagemax = $p + 10;

这里是查询:

SELECT
  mt.*, 
  fordon.*, 
  boende.*, 
  elektronik.*, 
  business.*, 
  hem_inredning.*, 
  hobby.* 
FROM classified mt 
 LEFT JOIN fordon ON fordon.classified_id = mt.classified_id 
 LEFT JOIN boende ON boende.classified_id = mt.classified_id 
 LEFT JOIN elektronik ON elektronik.classified_id = mt.classified_id 
 LEFT JOIN business ON business.classified_id = mt.classified_id 
 LEFT JOIN hem_inredning ON hem_inredning.classified_id = mt.classified_id 
 LEFT JOIN hobby ON hobby.classified_id = mt.classified_id 
 ORDER BY modify_date DESC 
 LIMIT 0, 2

谢谢,如果您需要更多信息,请告诉我。

基本上问题是,我必须进行两次查询吗?

最佳答案

您可以使用以下两个查询:

SELECT  SQL_CALC_FOUND_ROWS *
FROM    t_source
LIMIT   100, 10;

SELECT  FOUND_ROWS();

第一个 将返回结果,第二个 将显示返回的记录数,如果没有LIMIT 子句。

关于php - 菜鸟MySql关于分页的问题;一次查询就够了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2781978/

相关文章:

mysql - Select max 在 MySQL 中返回错误值

javascript - 没有使用 wp_query 插件的 WordPress REST API

php - 设计SQL语句: How to JOIN on same table

javascript - 将 Chart.js 连接到 MySQL 数据库

php - 按关系项过滤结果

php - 视频不流mysql php

php - 调用模型文件中非对象的成员函数 num_rows()

mysql - MySQL 中何时使用单引号、双引号和反引号

PHP执行批处理文件开始记录ffmpeg并杀死ffmpeg

php - 没有数据库的 Codeigniter 网站在实时服务器上生成数据库错误