多表分页

时间:2011-05-12 10:36:20

标签: php mysql algorithm pagination

如果您有以下功能: 如何为每个表添加LIMIT序列?

function find($page=2,$num_of_page=30){
   $query_1 = "SELECT COUNT(*) FROM table_1";
   $query_2 = "SELECT COUNT(*) FROM table_2";
   $query_3 = "SELECT COUNT(*) FROM table_3";

   .
   .
   .
   /*
   $total_count   == 100;
   $table_1_count ==  33;
   $table_2_count ==  10;
   $table_3_count ==  57; 
   */

   $offset = $page -1 * $num_of_page;
   $limit  = $num_of_page;
   .
   .

}

如果$ page == 2和$ num_of_page == 30; 你应该执行

SELECT * FROM table_1 LIMIT 30,3
SELECT * FROM table_2 LIMIT 0,10
SELECT * FROM table_3 LIMIT 0,17

请原谅我丑陋的英语

1 个答案:

答案 0 :(得分:1)

如果这些表格具有相同的结构,您可以SELECT * FROM table1 UNION ALL SELECT * FROM table2 UNION ALL SELECT * FROM table3然后使用单个LIMIT进行查询。