很多剛入門的朋友們做分頁已經沒有什么問題,但是在做查詢分頁的時候可能會遇到問題,例如頁面中一頁默認顯示10條數據,共有100條數據,當你查詢符合某個條件的數據的時候,發現符合條件的數據有15條,這個時候只需要用get接收傳過來的查詢條件即可,(如果用post的話,請將變量存儲到session中使用),查出來的第一頁沒問題,當翻頁 翻到第二頁的時候會發現查詢條件丟失了,好多新手不知所措,其實問題的原因很簡單,是因為在點擊翻頁按鈕的時候忘記了傳遞參數,參數就是這個查詢條件,加上就可以了,完整的代碼如下:
<?php $conn = @mysql_connect("localhost","root","root") or die("連接數據庫服務器失敗!"); //連接ly_php_base數據庫 $ok = @mysql_select_db("pagetest",$conn) or die("未能連接到數據庫!"); mysql_query("set names 'utf8'"); //解決想mysql數據庫中插入漢字失敗的問題,這里注意utf8必須和<meta charset="utf-8">中的這一致 if($ok){echo "mysql is ok!";}else {echo "mysql is failed!";} $page=$_GET['page'];//獲得當前的頁面值 if (!isset($page)){$page=1;} //如果沒有值,則賦值1 $page_size=4;//每頁顯示2條 $tt=$_GET['title']; if($tt){ $tv="title like '%$tt%'"; }else{ $tv=1; } $arcs_result=mysql_query("select count(*) as total from contents where $tv");//輸出結果為Resource id #4 //echo $arcs_result; $arc_size=mysql_result($arcs_result,0,"total");//文章總數 $pagenum=ceil($arc_size/$page_size); $offset=($page-1)*$page_size; $sql=mysql_query("SELECT * FROM contents WHERE $tv order by id asc limit $offset,$page_size"); //desc表示降序排序,意思是從$offset開始,排$page_size次 if($sql){echo "query yes";}else {echo "query no";} $rs=mysql_fetch_array($sql); //提取數據 ?> <form action="ceshi.php" method="get"> <input type="text" name="title"/> <input type="submit" value="查詢"/> </form> <?php while($rs) { ?> <div> <p>主鍵:<?php echo $rs['id'];?><p> <p>用戶編號:<?php echo $rs['user_id'];?></p> <p>發送日期:<?php echo $rs['send_date'];?></p> <p>標題:<?php echo $rs['title'];?></p> <p>備注:<?php echo $rs['note'];?></p> <p>內容:<?php echo $rs['content'];?></p> <p>[<?php echo $page;?>]頁</p> <p>-----------------------------------</p> </div> <?php $rs = mysql_fetch_array($sql); } For($i=1;$i<=$pagenum;$i++){ $show=($i!=$page)?"<a href='ceshi.php?page=".$i."&title=$tt'>$i</a>":"<b>$i</b>"; Echo $show." "; } ?>
然后就可以了