簡體   English   中英

如何從函數中獲取正確的最大ID和最小ID?

[英]How to get the right max id and min id from a function?

我以前有一個有300萬行的大表,但是我將其拆分為6個表,每個表500.000行,現在我正嘗試連接它們,但是我想用1而不是全部6個表同時讀取1個表,我正在嘗試使用我的網站分頁來選擇需要讀取的表格以及最大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 Desc顯示

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;

我成功修復了該功能:

  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;
   }

   $Table_Extra                = $content['data']['max_table']-$Table_Number;

   if($Table_Extra == 0) {
    $Max_Table_ID              = $Table_Number*500000;
    $Min_ID                    = ($Max_Table_ID-$end_num)+1;
    $Max_ID                    = $Min_ID+99;
   } else if($Table_Extra > 0) {
    $Add_Extra                 = $Table_Extra*500000;
    $Max_Table_ID              = $Table_Number*500000;
    $Min_ID                    = (($Max_Table_ID-$end_num)+1)+$Add_Extra;
    $Max_ID                    = ($Min_ID+99)+$Add_Extra;
   }  

   $Array                     = array();
   $Array['Table_Number']     = $Table_Number;
   $Array['Max_ID']           = $Max_ID;
   $Array['Min_ID']           = $Min_ID;


   return $Array;
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM