你的頁面跳轉(zhuǎn), 要把原來有的get參數(shù)一同傳遞下去!
廬江網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)公司2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運(yùn)維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
因為, 如果你第一頁就是根據(jù)相關(guān)get參數(shù)查詢的數(shù)據(jù)庫, 而你在下一頁沒有提供這個參數(shù), 當(dāng)然會查詢不到!
get參數(shù)是在當(dāng)前頁面有效的, 一般, get參數(shù)是url提供, 你url有就有, 沒有就沒有, 不是你提供一次, 人家就會給你保存一輩子!
例外, 你這個php文件, 功能其實很簡單對吧?但你有沒有覺得, 代碼密密麻麻呢?
如果讓你寫一個大型網(wǎng)站, 那你的代碼豈不是要用東風(fēng)牌大卡車來裝呢?
php本身是沒有分頁概念的,分頁是URL傳參,然后通過mysql查詢語句到數(shù)據(jù)庫獲取數(shù)據(jù),然后實現(xiàn)的分頁,url上的參數(shù),通過PHP的$_GET都是可以獲取到的。
現(xiàn)在市面上的PHP框架基本都有PHP分頁類,參照文檔直接調(diào)用就好了,如果想看實現(xiàn)過程,可以去下載一個TP框架,然后打開里面的分頁類查看里面的源代碼。
說明你點(diǎn)下一頁的時候,查詢條件沒有獲取到,下一頁的是連接,所以接受數(shù)據(jù)參數(shù)的時候需要用$_GET 來接收,提交的時候也需要用get方法提交,這樣才能保證參數(shù)不會丟失,點(diǎn)擊下一頁的時候限制條件保持一致
我這個好用一點(diǎn),可以直接加在最前面,有兩個變量從頁面GET的來。
可如下引用:
echo yemiandaohang("thispage.php?",$num,$perpage,$page);
參數(shù)說明:
1、連接文檔及其他的在網(wǎng)頁中需用到的GET變量
2、查詢結(jié)果的總數(shù),仁兄的網(wǎng)頁中若使用,此值可為:$num
3、每頁顯示個數(shù),此處設(shè)置默認(rèn)為10個,并可以從網(wǎng)頁GET變量來改變
4、當(dāng)前頁編號。
///////////////////////////////////////////設(shè)置分頁顯示///////////////////////////////////////////////////
//設(shè)置每頁顯示個數(shù)
if($_REQUEST[perpage]){
$perpage=$_REQUEST[perpage];
}
else{
$perpage=20;
}
//設(shè)置當(dāng)前頁
if($_REQUEST[page]){
$page=$_REQUEST[page];
}
else{
$page=1;
}
function yemiandaohang($web_,$count_,$per_page_=10,$page_no_=1){
$page_count_=ceil($count_/$per_page_);//計算頁數(shù)
if($page_no_==1){//設(shè)置前導(dǎo)連接
$title_s_="首頁 | 上一頁 | ";
}
else{
$title_s_="a href=\"".$web_."page=1perpage=".$per_page_."\"首頁/a | a href=\"".$web_."page=".($page_no_-1)."perpage=".$per_page_."\"上一頁/a|";
}
if($page_no_==$page_count_){//設(shè)置后導(dǎo)連接
$title_e_="下一頁 | 尾頁";
}
else{
$title_e_="ba href=\"".$web_."page=".($page_no_+1)."perpage=".$per_page_."\"下一頁/a/b | a href=\"".$web_."perpage=".$per_page_."page=".$page_count_."\"尾頁/a/b";
}
//設(shè)置數(shù)字連接
$title_m_="";
for($x=1;$x=$page_count_;$x++){
if($x==$page_no_){
$title_m_=$title_m_.$x." | ";
}
else{
$title_m_=$title_m_."a href=\"".$web_."page=".$x."perpage=".$per_page_."\"".$x."/a | ";
}
}
$title_=$title_s_.$title_m_.$title_e_."(每頁".$per_page_."條,共".$page_count_."頁".$count_."條,現(xiàn)在顯示第".$page_no_."頁)";
return $title_;//返回頁面導(dǎo)航字符
}
///////////////////////////////////////////設(shè)置分頁顯示結(jié)束///////////////////////////////////////////////
另外,查詢語句前要定義一個$startrecord,分頁查詢要用到;在查詢語句里面最后需要加上 limit $startrecord,$perpage 以確定查詢的數(shù)據(jù)的開始和個數(shù)
這是我自己寫的,可以訪問下面的示例:里面有兩處引用
這個網(wǎng)上太多相關(guān)的資料了 你自己動手搜搜
主要靠sql語句控制
如
PHP代碼如下:
/*
Author:默默
Date :2006-12-03
*/
$page=isset($_GET['page'])?intval($_GET['page']):1; //這句就是獲取page=18中的page的值,假如不存在page,那么頁數(shù)就是1。
$num=10; //每頁顯示10條數(shù)據(jù)
$db=mysql_connect("host","name","pass"); //創(chuàng)建數(shù)據(jù)庫連接
$select=mysql_select_db("db",$db); //選擇要操作的數(shù)據(jù)庫
/*
首先咱們要獲取數(shù)據(jù)庫中到底有多少數(shù)據(jù),才能判斷具體要分多少頁,具體的公式就是
總數(shù)據(jù)數(shù)除以每頁顯示的條數(shù),有余進(jìn)一。
也就是說10/3=3.3333=4 有余數(shù)就要進(jìn)一。
*/
$total=mysql_num_rows(mysql_query("select id from table")); //查詢數(shù)據(jù)的總數(shù),id是數(shù)據(jù)庫中的一個自動賦值的字段
$pagenum=ceil($total/$num); //獲得總頁數(shù)
//假如傳入的頁數(shù)參數(shù)大于總頁數(shù),則顯示錯誤信息
If($page$pagenum || $page == 0){
Echo "Error : Can Not Found The page .";
Exit;
}
$offset=($page-1)*$num; //獲取limit的第一個參數(shù)的值,假如第一頁則為(1-1)*10=0,第二頁為(2-1)*10=10。
$info=mysql_query("select name from table limit $offset,$num"); //獲取相應(yīng)頁數(shù)所需要顯示的數(shù)據(jù),name是數(shù)據(jù)里的一個字段
While($it=mysql_fetch_array($info)){
Echo $it['name']."
";
} //顯示數(shù)據(jù)
For($i=1;$i=$pagenum;$i++){
$show=($i!=$page)?"$i":"$i";
Echo $show." ";
}
/*顯示分頁信息,假如是當(dāng)頁則顯示粗體的數(shù)字,其余的頁數(shù)則為超連接,假如當(dāng)前為第三頁則顯示如下
1 2 3 4 5 6
*/
?