怎樣處理從后台傳來大量數據的分頁操作


想必大家對數據不會陌生,而且最近大數據這個詞語一直在我們的生活中甚囂塵上,讓我們讀來感覺不名覺歷。

那到底是什么是大數據呢,我理解的大數據就是數據量很龐大,但是這么大的數據我們怎么處理呢?

新聞大家都知道吧,每時每刻都是新鮮事發生,而這就是新聞,當我們把新聞傳到數據庫,是一條條傳,但是怎么讀取和展示呢?

慢慢來,聽我一點點的說:

首先是數據的讀取,這里我們要調用函數,這個函數主要是用來讀取數據庫中的數據並將數據存入到數組中

//獲取所有的數據 
//pageNum是當前頁數,pageSize是頁面展示數據的條數
function getAllMessage($pageNum=1,$pageSize=3){
//新建一個存放數據的數組
    $array = array();
//鏈接數據庫
    $coon = mysqli_connect("localhost","root") or die("數據庫連接失敗");
//選擇要操作的數據庫名稱
    mysqli_select_db($coon,'firstdb') or die(mysqli_errno($coon));
//修改編碼格式
    mysqli_set_charset($coon,'utf8');
//要執行的數據庫操作語句
    $sql = "select * from t_status limit ".(($pageNum-1)*$pageSize).",".$pageSize;
//執行數據庫操作語句
    $rs = mysqli_query($coon,$sql) or die(mysqli_errno($coon));
//利用循環將數據轉化為對象並存入數組中
    while ($r = mysqli_fetch_object($rs)){
        $array[] = $r;
    }
//關閉數據庫
    mysqli_close($coon);
//返回數組
    return $array;
}

在這里要說一下MySQL語言中的limit關鍵字了,閑話少說直接上代碼:

select * from tabName limit index,length;

其中tabName是表的名稱,index是索引值,length是展示數據的長度。

除了獲取指定索引和長度的數據,我們還要知道數據的總長度,主要是用來確定分頁的最后一頁的,上代碼:

//獲取所有的數據總數
//返回值為數據庫所有數據的總數
function getCount(){
//數據庫的鏈接
    $coon = mysqli_connect("localhost","root") or die("數據庫連接失敗");
//要操作的數據庫
    mysqli_select_db($coon,'firstdb') or die(mysqli_errno($coon));
//修改編碼格式
    mysqli_set_charset($coon,'utf8');
//要執行的數據庫語句
    $sql = "select count(*) num from t_status";
//執行語句
    $rs = mysqli_query($coon,$sql) or die(mysqli_errno($coon));
    $r = mysqli_fetch_object($rs);
    mysqli_close($coon);
    return $r->num;
}
select count(*) num from t_status;
在這個語句中 count是關鍵字,是用來獲取數據總長度並給一個名稱num。
數據獲取到了,接下來就是頁面的展示了,我直接上代碼,詳細的說明也在代碼中一一說明:
<?php
//引用函數的路徑
include_once "getMessage.php";
//定義索引值
$pageNum = empty($_GET["pageNum"])?1:$_GET["pageNum"];
//定義一個頁面數據展示的長度
$pageSize = 3;
//獲取所有的數據條數
$total = getCount();
//將數據分配到頁面並進行數據取證
$allPage = ceil($total/$pageSize);
//獲取指定索引與長度的數據條數
$array=getAllMessage($pageNum,$pageSize);
?>
<body>
//簡單的展示頁面
<table border="1">
    <tr>
        <td>編號</td>
        <td>內容</td>
        <td>日期</td>
        <td>操作</td>
    </tr>
//重頭戲 使用循環進行數據庫內容的展示 
    <?php
    foreach($array as $key=>$values){
        echo "<tr>";
        echo "<td>{$values->id}</td>";
        echo "<td>{$values->content}</td>";
        echo "<td>{$values->data}</td>";
        echo "<td>刪除</td>";
        echo "</tr>";
    }
    ?>
</table>
<div style="text-align: center">
//使用get方式傳遞數據,將 首頁 和 尾頁 的數據寫死
    <a href="index.php?pageNum=1">首頁</a>
//上一頁要判斷本頁面的數值是不是第一頁
    <a href="index.php?pageNum=<?php echo $pageNum==1?1:$pageNum-1 ?>">上一頁</a>
//同理尾頁要判斷是否是最后一頁
    <a href="index.php?pageNum=<?php echo $pageNum==$allPage?$allPage:$pageNum+1 ?>">下一頁</a>
    <a href="index.php?pageNum=<?php echo $allPage?>">尾頁</a>
</div>

只是一個簡單的demo,希望能幫助到大家,並期望各位大佬不吝賜教。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM