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