2014-10-04 43 views
0

我有一個300萬行以前的大表,但我把它分成6個表500.000行每個,現在我試圖連接它們,但我想讀1表1,而不是所有6表在同一時間,我正在嘗試使用我的網站分頁來選擇需要閱讀哪個表以及哪個最大ID和最小ID。如何從函數中獲取正確的最大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需要是300萬和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

...

我想說明通過命令編號說明

Table 6: 
Max id = 3000000 
Min id = 2500001 

Table 5: 
Max id = 2500000 
Min id = 2000001 

我怎樣才能得到正確的Max_ID和Min_ID從這個功能,所以我可以選擇正確的方式?

+0

對於頁面沒有1'Min_id'是'2999901'或'2999900' – Joe 2014-10-04 04:48:46

+0

2999900必要因爲是最大的id表3000000 - 100(限制頁面)= 2999900 – 2014-10-04 05:16:53

+0

如果Min_id是2999900,包括2999900,則會有101行 – Joe 2014-10-04 05:20:01

回答

1

試試這個:

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

我成功修復功能:

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