php 自動分頁類函數

來源:互聯網
上載者:User

php教程 自動分頁類函數

不想重複的寫sql代碼,就用下面的函數去自動處理了。

$__t_page_moyo_html = '';
/**
*
* 臨時代碼:分頁處理函數
* @param string $sql
*/
function page_moyo($sql = '')
{
    global $__t_page_moyo_html;
    if ($sql == '')
    {
        return $__t_page_moyo_html;
    }
    // config
    $max = 12;
    $flag = 'page';
    // step .1 處理sql語句
    $sql_count = preg_replace('/select.*?from/is', 'select count(*) as mcnt from', $sql);
    // step .2 擷取資料量
    $result = dbc()->query($sql_count)->getrow();
    $total = $result['mcnt'];
    // step .3 判斷是否需要分頁
    if ($total < $max)
    {
        return $sql;
    }
    // step .4 擷取當前頁數
    $pn = isset($_get[$flag]) ? (int)$_get[$flag] : 1;
    if ($pn <= 0) $pn = 1;
    // step .5 重組sql語句
    $sql = $sql . ' limit '.($pn-1)*$max.','.$max;
    // step .6 組裝分頁html代碼
    $url = $_server['request_uri'];
    if (preg_match('/'.$flag.'=d+/i', $url))
    {
        $url = preg_replace('/[&]?'.$flag.'=d+/', '', $url);
    }
    $pageall = ceil($total/$max);
    $pre = '';
    if ($pn > 1)
    {
        $pre = ' / <a href="'.$url.'&'.$flag.'='.($pn-1).'">上一頁</a>';
    }
    $nxt = ' / <a href="'.$url.'&'.$flag.'='.($pn+1).'">下一頁</a>';
    $html = '<a href="'.$url.'">首頁</a>'.$pre.$nxt.' / <a href="'.$url.'&'.$flag.'='.$pageall.'">尾頁</a>';
    $__t_page_moyo_html = $html;
    return $sql;
}


在進行sql查詢前用page_moyo處理一下sql語句
     $sql = page_moyo($sql);
然後在需要顯示分頁連結的地方直接調用page_moyo輸出
     echo page_moyo();

如果要連續進行兩次大資料量sql查詢的話就要在第一次查詢後儲存下當時的分頁代碼,不然下個sql查詢就會覆蓋掉了

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.