php - 如何从函数中获取正确的最大 id 和最小 id?

标签 php mysql

我之前有一个包含 300 万行的大表,但我将其拆分为 6 个表,每个表 500.000 行,现在我尝试连接它们,但我想读取 1 个表,而不是同时读取所有 6 个表现在,我尝试使用网站分页来选择需要读取的表以及最大 id 和最小 id。

我做了这个功能:

  $content['data']['max_table']  = 6;
  $content['data']['min_table']  = 1;
  $content['data']['limit_page'] = 100;

  function Tables( $start_num, $end_num ) {
   global $content;

   if($end_num <= 500000) {
    $Table_Number = $content['data']['max_table'];
   } else if($end_num > 500000) {
    $Calc         = intval($end_num/500000);
    $Table_Number = $content['data']['max_table']-$Calc;

   }

   $Array                     = array();
   $Array['Table_Number']     = $Table_Number;
   $Array['Max_ID']           = ($Table_Number*500000)-$end_num;
   $Array['Min_ID']           = ($Array['Max_ID']-$content['data']['limit_page'])-$start_num;

   return $Array;
  }

这个函数给了我正确的Table_Number,但是Max_ID和Min_ID是错误的。

页数限制为 100,如果我的页码 1 = $start_num 为 1,$end_num 为 100,Table_Number 为 6 这里Max_ID需要是3000000,Min_ID需要是2999900

如果页码为 5000 = $start_num 为 499901,$end_num 为 500000,Table_Number 为 6 这里Max_ID需要是2500101,Min_ID需要是2500001

如果页码为 5001 = $start_num 为 500001,$end_num 为 500100,Table_Number 为 5 这里Max_ID需要是2500000,Min_ID需要是2499900

...

我想通过订单 ID 描述显示

Table 6:
Max id = 3000000
Min id = 2500001

Table 5:
Max id = 2500000
Min id = 2000001

如何从此函数中获得正确的 Max_ID 和 Min_ID 以便我可以选择正确的方式?

最佳答案

试试这个:

$Array['Min_ID'] = 6 * 500000 - $end_num + 1;    
$Array['Max_ID'] = $Array['Min_ID'] + 99;

关于php - 如何从函数中获取正确的最大 id 和最小 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26189456/

相关文章:

php - 如何在不离开页面的情况下将姓名插入数据库并在提交页面上显示多个表单

PHP preg_replace_callback,仅替换 1 个反向引用?

php - 组织 PHP OOP 类来使用 DB

java - 如何建立外部mysql数据库的连接,然后调用进行具体的数据查询

mysql - 如何根据分数获取特定行数

php - 为什么我的 Swift 应用程序无法连接到我的数据库?

javascript - 将 PHP 数组发送到 JavaScript 问题

mysql - 为什么 LEFT JOIN 和 GROUP BY 会影响性能?

php - PDO 未输出正确的行数

php - MYSQL选择所有具有最近日期的记录