PHP用超全局变量POST从html获得信息在数据库模糊查询只有第一页正常显示
<?php$link=MySQL_connect('localhost','root','920224');mysql_select_db('test',$link);m...
<?php
$link=MySQL_connect('localhost','root','920224');
mysql_select_db('test',$link);
mysql_query('set names GB2312');
$Page_size=10;
function _post($str) {
$val = !empty($_POST[$str]) ? $_POST[$str] : null;
return $val;
}
$qq =_post('search');
echo $qq;
$chaxun = "select D from sheet1 where D like '%$qq%'";
$result=mysql_query($chaxun);
$count = mysql_num_rows($result);
$page_count = ceil($count/$Page_size);
$init=1;
$page_len=7;
$max_p=$page_count;
$pages=$page_count;
//判断当前页码
if(empty($_GET['page'])||$_GET['page']<0){
$page=1;
}else {
$page=$_GET['page'];
}
$offset=$Page_size*($page-1);
$sql="select * from sheet1 where D like '%$qq%' limit $offset,$Page_size";
$result=mysql_query($sql,$link);
while ($row=mysql_fetch_array($result)) {
echo $qq;
?>
<div ><img src="/img/4.jpg" width="50px"/>书名:<?php echo $row['D']?> </h5>
<br/>
<p>收藏库室:<?php echo $row['H']?> </p>
<p>索书号:<?php echo $row['B']?> </p>
<p>出版社:<?php echo $row['E']?> </p>
<p>作者:<?php echo $row['I']?> </p>
<p>出版日期:<?php echo $row['F']?> </p>
<p>图书数量:<?php echo $row['L']?> </p>
<p>标准编码:<?php echo $row['J']?> </p>
</div><br/>
<?php
}
$page_len = ($page_len%2)?$page_len:$pagelen+1;//页码个数
$pageoffset = ($page_len-1)/2;//页码个数左右偏移量
$key='<div class="page">';
$key.="<span>$page/$pages</span> "; //第几页,共几页
if($page!=1){
$key.="<a href=\"".$_SERVER['PHP_SELF']."?page=1\">第一页</a> "; //第一页
$key.="<a href=\"".$_SERVER['PHP_SELF']."?page=".($page-1)."\">上一页</a>"; //上一页
}else {
$key.="第一页 ";//第一页
$key.="上一页"; //上一页
}
if($pages>$page_len){
//如果当前页小于等于左偏移
if($page<=$pageoffset){
$init=1;
$max_p = $page_len;
}else{//如果当前页大于左偏移
//如果当前页码右偏移超出最大分页数
if($page+$pageoffset>=$pages+1){
$init = $pages-$page_len+1;
}else{
//左右偏移都存在时的计算
$init = $page-$pageoffset;
$max_p = $page+$pageoffset;
}
}
}
for($i=$init;$i<=$max_p;$i++){
if($i==$page){
$key.=' <span>'.$i.'</span>';
} else {
$key.=" <a href=\"".$_SERVER['PHP_SELF']."?page=".$i."\">".$i."</a>";
}
}
if($page!=$pages){
$key.=" <a href=\"".$_SERVER['PHP_SELF']."?page=".($page+1)."\">下一页</a> ";//下一页
$key.="<a href=\"".$_SERVER['PHP_SELF']."?page={$pages}\">最后一页</a>"; //最后一页
}else {
$key.="下一页 ";//下一页
$key.="最后一页"; //最后一页
}
$key.='</div>';
?>
<tr>
<td colspan="2" bgcolor="#E0EEE0"><div align="center"><?php echo $key?></div></td>
</tr>
首次打开显示正常,点击下一页直接跳到整个数据库的第11-20条数据且无法返回 展开
$link=MySQL_connect('localhost','root','920224');
mysql_select_db('test',$link);
mysql_query('set names GB2312');
$Page_size=10;
function _post($str) {
$val = !empty($_POST[$str]) ? $_POST[$str] : null;
return $val;
}
$qq =_post('search');
echo $qq;
$chaxun = "select D from sheet1 where D like '%$qq%'";
$result=mysql_query($chaxun);
$count = mysql_num_rows($result);
$page_count = ceil($count/$Page_size);
$init=1;
$page_len=7;
$max_p=$page_count;
$pages=$page_count;
//判断当前页码
if(empty($_GET['page'])||$_GET['page']<0){
$page=1;
}else {
$page=$_GET['page'];
}
$offset=$Page_size*($page-1);
$sql="select * from sheet1 where D like '%$qq%' limit $offset,$Page_size";
$result=mysql_query($sql,$link);
while ($row=mysql_fetch_array($result)) {
echo $qq;
?>
<div ><img src="/img/4.jpg" width="50px"/>书名:<?php echo $row['D']?> </h5>
<br/>
<p>收藏库室:<?php echo $row['H']?> </p>
<p>索书号:<?php echo $row['B']?> </p>
<p>出版社:<?php echo $row['E']?> </p>
<p>作者:<?php echo $row['I']?> </p>
<p>出版日期:<?php echo $row['F']?> </p>
<p>图书数量:<?php echo $row['L']?> </p>
<p>标准编码:<?php echo $row['J']?> </p>
</div><br/>
<?php
}
$page_len = ($page_len%2)?$page_len:$pagelen+1;//页码个数
$pageoffset = ($page_len-1)/2;//页码个数左右偏移量
$key='<div class="page">';
$key.="<span>$page/$pages</span> "; //第几页,共几页
if($page!=1){
$key.="<a href=\"".$_SERVER['PHP_SELF']."?page=1\">第一页</a> "; //第一页
$key.="<a href=\"".$_SERVER['PHP_SELF']."?page=".($page-1)."\">上一页</a>"; //上一页
}else {
$key.="第一页 ";//第一页
$key.="上一页"; //上一页
}
if($pages>$page_len){
//如果当前页小于等于左偏移
if($page<=$pageoffset){
$init=1;
$max_p = $page_len;
}else{//如果当前页大于左偏移
//如果当前页码右偏移超出最大分页数
if($page+$pageoffset>=$pages+1){
$init = $pages-$page_len+1;
}else{
//左右偏移都存在时的计算
$init = $page-$pageoffset;
$max_p = $page+$pageoffset;
}
}
}
for($i=$init;$i<=$max_p;$i++){
if($i==$page){
$key.=' <span>'.$i.'</span>';
} else {
$key.=" <a href=\"".$_SERVER['PHP_SELF']."?page=".$i."\">".$i."</a>";
}
}
if($page!=$pages){
$key.=" <a href=\"".$_SERVER['PHP_SELF']."?page=".($page+1)."\">下一页</a> ";//下一页
$key.="<a href=\"".$_SERVER['PHP_SELF']."?page={$pages}\">最后一页</a>"; //最后一页
}else {
$key.="下一页 ";//下一页
$key.="最后一页"; //最后一页
}
$key.='</div>';
?>
<tr>
<td colspan="2" bgcolor="#E0EEE0"><div align="center"><?php echo $key?></div></td>
</tr>
首次打开显示正常,点击下一页直接跳到整个数据库的第11-20条数据且无法返回 展开
1个回答
展开全部
是这样的,你那个搜索的字段值是通过post过来的:$qq =_post('search');,那么它只能post给第一页,而其它页是一个全新的网页,并没有当时的post的值了,即使你返回也是如此。所以,你应该想办法留住这个post的值。我提供的方法是把post过来的值,作为分页链接中的一个参数,然后在你的网页中判断是否有这个参数。
关键代码:
if(isset($_POST["search"])) $qq=$_POST["search"];
if(isset($_GET["qq"])) $qq=$_GET["qq"];
$key.="<a href=\"".$_SERVER['PHP_SELF']."?page=1&qq=$qq\">第一页</a> ";
关键代码:
if(isset($_POST["search"])) $qq=$_POST["search"];
if(isset($_GET["qq"])) $qq=$_GET["qq"];
$key.="<a href=\"".$_SERVER['PHP_SELF']."?page=1&qq=$qq\">第一页</a> ";
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询