你的頁面跳轉(zhuǎn), 要把原來有的get參數(shù)一同傳遞下去!
目前創(chuàng)新互聯(lián)已為上千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站運營、企業(yè)網(wǎng)站設(shè)計、湘潭網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
因為, 如果你第一頁就是根據(jù)相關(guān)get參數(shù)查詢的數(shù)據(jù)庫, 而你在下一頁沒有提供這個參數(shù), 當(dāng)然會查詢不到!
get參數(shù)是在當(dāng)前頁面有效的, 一般, get參數(shù)是url提供, 你url有就有, 沒有就沒有, 不是你提供一次, 人家就會給你保存一輩子!
例外, 你這個php文件, 功能其實很簡單對吧?但你有沒有覺得, 代碼密密麻麻呢?
如果讓你寫一個大型網(wǎng)站, 那你的代碼豈不是要用東風(fēng)牌大卡車來裝呢?
說明你點下一頁的時候,查詢條件沒有獲取到,下一頁的是連接,所以接受數(shù)據(jù)參數(shù)的時候需要用$_GET 來接收,提交的時候也需要用get方法提交,這樣才能保證參數(shù)不會丟失,點擊下一頁的時候限制條件保持一致
因為在點擊分頁鏈接時表單數(shù)據(jù)不會傳遞會丟失而導(dǎo)致分頁鏈接無效 解決的方法有幾種。 第一種是用網(wǎng)站管理軟件把搜索結(jié)果生成靜態(tài)頁面并保存一段時間。 第二種是考慮用session傳遞搜索信息。 當(dāng)搜索信息表單提交并驗證之后開啟session. session_start(); $_SESSION[keywords] = $X; $_SESSION[searchscope] = $Y; ... //賦值搜索信息。關(guān)鍵字、搜索范圍等等 在搜索結(jié)果頁面開啟session得到搜索信息再提交就行了 session_start(); $keywords=$_SESSION[keywords]; $searchscope$_SESSION[searchscope]; 第三種是用數(shù)據(jù)庫存儲搜索信息。
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ù),有余進一。
也就是說10/3=3.3333=4 有余數(shù)就要進一。
*/
$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
*/
?
?php
$mysql_server_name="localhost";
$mysql_username='root';
$mysql_password='';
$mysql_database='hp';
$conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password);
@mysql_connect("localhost","root","")?or?die("數(shù)據(jù)庫連接失敗");
@mysql_select_db("hp")?or?die("數(shù)據(jù)庫不存在");
mysql_query("set?names?utf8");
$pagesize?=?$_GET['pagesize']??0???$_GET['pagesize']?:?10;?//默認(rèn)情況下每頁顯示10條數(shù)據(jù)
$pagenum?=?$_GET['pagenum']??0???$_GET['pagenum']?:?0;
$query_start?=?$pagesize?*?$pagenum;
if($_POST['submit']){
$strsql_add?=?'';
$strsql_add?.=$_POST['idc']???"?and?idc='$_POST[idc]'?":"";
$strsql_add?.=$_POST['jiguihao']???"?and?jiguihao='$_POST[jiguihao]'?":"";
$strsql_add?.=$_POST['neicun']???"?and?neicun='$_POST[neicun]'?":"";
$strsql_add?.=$_POST['yingpan']???"?and?yingpan='$_POST[yingpan]'?":"";
$strsql_add?.=$_POST['xinghao']???"?and?xinghao='$_POST[xinghao]'?":"";
$strsql_add?.=$_POST['cpu']???"?and?cpu='$_POST[cpu]'?":"";
$strsql_add?.=$_POST['guishu']???"?and?guishu='$_POST[guishu]'?":"";
$strsql_add?.=$_POST['ip']???"?and?ip='$_POST[ip]'?":"";
}
$strsql="select?*?from?zichan?where?1=1?$strsql_add?limit?$query_start,?$pagesize";
$result=mysql_db_query($mysql_database,$strsql,$conn);
$row=mysql_fetch_row($result);
$nextpage_num?=?$pagenum++;
$lastpage_num?=?ceil(count($row)/$pagesize);
echo?'font?face="verdana"';
echo?'table?border="1"?cellpadding="1"?cellspacing="2"';
//?顯示字段名稱
echo?"/btr/b";
for?($i=0;?$imysql_num_fields($result);?$i++)
{
echo?'td?bgcolor="#00FF00"b'.
mysql_field_name($result,?$i);
echo?"/b/td/b";
}
echo?"/tr/b";
//?定位到第一條記錄
mysql_data_seek($result,?0);
//?循環(huán)取出記錄
while?($row=mysql_fetch_row($result))
{
echo?"tr/b";
for?($i=0;?$imysql_num_fields($result);?$i++?)
{
echo?'td?bgcolor="#00FF00"';
echo?$row[$i];
echo?'/td';
}
echo?'tda?href=\'xiugai.php?id='.$row[0].'\'修改/a';
echo?'/td';
echo?'tda?href="javascript:void(0)"?onclick="if(window.confirm(\'確認(rèn)刪除?\')){window.location.href=\'del.php?id='.$row[0].'\'}"刪除/a';
echo?'/td';
echo?"/tr/b";
}
echo?"/table/b";
echo?"/font";
//?釋放資源
mysql_free_result($result);
//?關(guān)閉連接
mysql_close($conn);
?
html頁面要增加的參數(shù):
首頁 增加 pagenum=0 或者 不加
下一頁 pagenum= $nextpage_num
尾頁 pagenum= $lastpage_num
信息太少 只能寫下面一部分
將while里面改一下即可
?php
$page_size=20;//每頁信息條數(shù)
//解析URL
$url=$_SERVER["REQUEST_URL"];
$url=parse_url($url);
$url=$url[path];
$numq=mysql_query("SELECT * FROM `表名`");
$num=mysql_num_rows($numq);
$page_first=1;
$page_last=ceil($num/$page_size);//獲得總頁數(shù) 也就是最后一頁的數(shù)值
if ($_GET[page]=1){
$page_num=$_GET[page];
$page_nums=($page_num-1)*$page_size;
}else{
$page_num=1;
$page_nums=($page_num-1)*$page_size;
}
echo $num."條記錄,共".$page_last."頁"."====bbig這是第".$page_num."頁/big/b"."br";
for($i=1;$i=$page_last;$i++){
echo "a href=$url2?page=".($page_num+$i-1).""."第".($page_num+$i-1)."頁 "."/a";
}
$sql="SELECT * FROM `表名` limit $page_nums,$page_size";
$query=mysql_query($sql);
echo "table border=1tr th姓名/thth姓別/th/tr";
while($row=mysql_fetch_array($query)){
echo "tr td";
echo $row[name];
echo "/td";
echo "td";
echo $row[sex];
echo "/td/tr";
}
echo "/table";
?