列表分頁展示和關(guān)鍵字搜索
本節(jié)我們來說下關(guān)於分頁顯示和關(guān)鍵字搜尋功能的做法。
做分頁功能我們同樣首先要連接資料庫,取得資料。大多數(shù)情況下我們可以將分頁和搜尋功能寫在同一個php頁面中。
接著我們來分析分頁功能的流程:
首先我們要設(shè)定每頁顯示多少條,一共有多少條數(shù)據(jù),這樣我們就知道一共有多少頁,還有就是我們目前顯示在第幾頁。
下面我們對照程式碼來進行詳細(xì)講解:
<?php //分頁功能 $pageSize = 5; //每頁顯示多少條記錄 $rowCount = 0; //共有多少條記錄 $pageNow = 1; //希望顯示第幾頁 $pageCount = 0; //一共有多少頁 //根據(jù)分頁鏈接來修改當(dāng)前頁的值 if (!empty($_GET['page'])) { $pageNow = $_GET['page']; } //這里是關(guān)鍵詞的搜索 $key=isset($_GET['key'])?'':$_GET['key'];//判斷前段頁面?zhèn)鬟f過來的關(guān)鍵詞是否存在 $cid=isset($_GET['cid'])?'':$_GET['cid']; $condition='1=1'; //這個條件是保證在搜索欄中沒有任何輸入的時候能正常顯示 if(!empty($key)){ $condition.=" and content LIKE '%{$key}%'"; } if(!empty($cid)){ $condition.=" and cid={$cid}"; } //根據(jù)分頁鏈接來修改 $pageNow的值。 $sql = "select count(*) from list WHERE {$condition}"; //根據(jù)$condition條件來進行查詢 $res1 = mysqli_query($link,$sql);//將查詢的結(jié)果賦值給$res1 //取出行數(shù) if ($row = mysqli_fetch_row($res1)) { $rowCount = $row[0]; } //取得$rowCount,,進而我們就知道了$pageCount這兩個數(shù)值了 //計算共有多少頁 $pageCount = ceil($rowCount / $pageSize); $pageStart = ($pageNow - 1) * $pageSize; //發(fā)送帶有分頁的sql結(jié)果 //根據(jù)$sql語句的limit 后面的兩個值(起始值,每頁條數(shù)),來實現(xiàn)分頁。以及求得這兩個值。 $sql = "select * from list WHERE {$condition} order BY id limit $pageStart,$pageSize"; $res2 = mysqli_query($link,$sql) or die('無法獲取結(jié)果集' . mysqli_connect_error()); $prev = ($pageNow - 1 <= 0 )?1:$pageNow-1; //上一頁 $next = ($pageNow + 1 > $pageCount)?$pageCount:$pageNow+1; //下一頁 ?>
我們將分頁,關(guān)鍵字搜尋放在了一個頁面當(dāng)中。
在我們的前端頁面中,我們也需要進行一些改動:
<a href="?page=<?php echo $prev;?>">上一頁</a> <?php for($i=1; $i<=$pageCount; $i++):?> <a href="?page=<?php echo $i;?> " <?php echo $i;?></a> <a href="?page=<?php echo $next;?>">下一頁</a>
而搜尋功能需要將我們根據(jù)關(guān)鍵字所搜到的資料在前端頁面進行循環(huán)出來。
<li> <input type="text" placeholder="請輸入搜索關(guān)鍵字" name="key" class="input" style="width:250px; line-height:17px;display:inline-block" value="<?php echo $_GET['key'];?>"/> <input type="submit" name="sub" class="button border-main icon-search" value="搜索" /> </li>
以上就是我們介紹的分頁和關(guān)鍵字搜索,如果有不明白的地方,可以留言,我會及時幫你們解答。