麻烦大家帮我检查一下,我的搜索分页哪儿出了问题? 本帖最后由 tgb200 于 2012-06-30 21:50:29 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $key.="<a href=\"".$_SERVER['PHP_SELF']."?page=".($page+1)."\">下一页></a>";//下一页伙计,在下一页的链接里,你只传递了一个page参数,而用户传递过来的其它参数比如city都没有带上,当然会检索出所有信息解决方法我想你也有的1. 检索条件存session (不太推荐这样,增加复杂性)2. 续带在下一页的链接上继续GET传参 在 //判断当前页码 前加入unset($_GET['page']);$search = http_build_query($_GET);把 "?page=" 改为 "?$search&page=" <?php $city=$_GET[city]; $quxian= $_GET[quxian]; $lx= $_GET[lx]; $gongqiu= $_GET[gongqiu]; $spmj= $_GET[spmj]; $cont= $_GET[cont]; $sql = 'select * from new '; if ( $spmj != '商铺面积' ){$sql .= "where mj $spmj" ; }if ( $city != '' ){ $sql .= ( preg_match('/where/' , $sql ) ? ' and ': ' where ' ) . ' city like "%'.$city.'%" ';}if ( $quxian != '' ){ $sql .= ( preg_match('/where/' , $sql ) ? ' and ': ' where ' ) . ' quxian like "%'.$quxian.'%" ';}if ( $lx != '商铺类型' ){ $sql .= ( preg_match('/where/' , $sql ) ? ' and ': ' where ' ) . ' lx like "%'.$lx.'%" ';}if ( $gongqiu!= '供求方式' ){ $sql .= ( preg_match('/where/' , $sql ) ? ' and ': ' where ' ) . ' gongqiu like "%'.$gongqiu.'%" ';}if ( $cont!= '' ){ $sql .= ( preg_match('/where/' , $sql ) ? ' and ': ' where ' ) . ' cont like "%'.$cont.'%" ';} $result = mysql_query($sql);echo $count = mysql_num_rows($result); $Page_size=3; $page_count = ceil($count/$Page_size);if(empty($_GET['page'])||$_GET['page']<0){ $page=1; }else { $page=$_GET['page'];} $page_len= 3; $max_p=$page_count; $pages=$page_count;unset($_GET['page']);$search = http_build_query($_GET);//判断当前页码 $offset=$Page_size*($page-1); echo $result =$sql."limit $offset,$Page_size "; $result=mysql_query($result); while ($row=mysql_fetch_array($result)) { if($result){ echo "<div id='xs'>";// echo "<div id='im' >"; //echo "<img src=$row[img]>"; //echo "</div>"; echo "<div id='title'>"; echo "<a href=number.php?id=$row[id]>"; echo $row[title]."</a>"; echo ' '."<span style='color:#5959FF'>".$row[ns]."</span><br>"; echo substr($row[cont],0,200)."<br>"."<span style='color:#5959FF'>".$row[quxian]."</span>".$row[lx].' '.$row[time]; echo "</div>"; echo "<div id='gr'>"; echo "<li>".$row[q].$row[dw]."</li>"; echo "<li>".$row[mj].㎡."</li>"; echo "</div>"."</div>"; } } ?> <?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']."?$search&page=".($page-1)."\"><上一页</a>"; //上一页}else {// $key.="第一页 ";//第一页// $key.="上一页"; //上一页} if($pages>$page_len){ //如果当前页小于等于左偏移 if($page<=$pageoffset){ $max_p = $page_len; }else{//如果当前页大于左偏移 //如果当前页码右偏移超出最大分页数 if($page+$pageoffset>=$pages+1){ $init = $pages-$page_len+1; }else{ //左右偏移都存在时的计算 $init = $page-$pageoffset; $max_p = $page+$pageoffset; } } } $init=1; for($i=$init;$i<=$max_p;$i++){ if($i==$page){ $key.='<b>'.$i.'</b>'; } else { $key.=" <a href=\"".$_SERVER['PHP_SELF']."?$search&page=".$i."\">[".$i."]</a> "; } } if($page!=$pages){ $key.="<a href=\"".$_SERVER['PHP_SELF']."?$search&page=".($page+1)."\">下一页></a>";//下一页 //$key.="<a href=\"".$_SERVER['PHP_SELF']."?$search&page={$pages}\">最后一页</a>"; //最后一页 }else {// $key.="下一页 ";//下一页// $key.="最后一页"; //最后一页 } $key.='</div>';?><?php echo $key?> PHP中的几种MySQL数据库操作,选哪个? 字符串替换问题 举一个 == 为false ===为true的 php例子 php和html如何禁止用户访问 求一条查询语句? (这里能发帖吗?)想找一个类似天猫的php开源系统,界面和用户体验都做得比较好的有那些?谢谢! PHP群,诚者加,不要潜水员 原来是用的apache服务器,现在换成IIS后出错了.高手帮忙看看 上传图片是否重复判断! PHP post数组的问题 PHP中关于双引号和单引号的问题 phpexcel导出excel文件,用IE8无法下载,另存为对话框一闪而过
伙计,在下一页的链接里,你只传递了一个page参数,而用户传递过来的其它参数比如city都没有带上,当然会检索出所有信息
解决方法我想你也有的
1. 检索条件存session (不太推荐这样,增加复杂性)
2. 续带在下一页的链接上继续GET传参
unset($_GET['page']);
$search = http_build_query($_GET);把 "?page=" 改为 "?$search&page="
$city=$_GET[city];
$quxian= $_GET[quxian];
$lx= $_GET[lx];
$gongqiu= $_GET[gongqiu];
$spmj= $_GET[spmj];
$cont= $_GET[cont];
$sql = 'select * from new '; if ( $spmj != '商铺面积' ){
$sql .= "where mj $spmj" ;
}
if ( $city != '' ){
$sql .= ( preg_match('/where/' , $sql ) ? ' and ': ' where ' ) . ' city like "%'.$city.'%" ';
}
if ( $quxian != '' ){
$sql .= ( preg_match('/where/' , $sql ) ? ' and ': ' where ' ) . ' quxian like "%'.$quxian.'%" ';
}
if ( $lx != '商铺类型' ){
$sql .= ( preg_match('/where/' , $sql ) ? ' and ': ' where ' ) . ' lx like "%'.$lx.'%" ';
}if ( $gongqiu!= '供求方式' ){
$sql .= ( preg_match('/where/' , $sql ) ? ' and ': ' where ' ) . ' gongqiu like "%'.$gongqiu.'%" ';
}if ( $cont!= '' ){
$sql .= ( preg_match('/where/' , $sql ) ? ' and ': ' where ' ) . ' cont like "%'.$cont.'%" ';
} $result = mysql_query($sql);
echo $count = mysql_num_rows($result);
$Page_size=3;
$page_count = ceil($count/$Page_size);
if(empty($_GET['page'])||$_GET['page']<0){
$page=1;
}else {
$page=$_GET['page'];
} $page_len= 3;
$max_p=$page_count;
$pages=$page_count;unset($_GET['page']);
$search = http_build_query($_GET);//判断当前页码
$offset=$Page_size*($page-1);
echo $result =$sql."limit $offset,$Page_size ";
$result=mysql_query($result);
while ($row=mysql_fetch_array($result)) {
if($result){
echo "<div id='xs'>";
// echo "<div id='im' >";
//echo "<img src=$row[img]>";
//echo "</div>";
echo "<div id='title'>";
echo "<a href=number.php?id=$row[id]>";
echo $row[title]."</a>";
echo ' '."<span style='color:#5959FF'>".$row[ns]."</span><br>";
echo substr($row[cont],0,200)."<br>"."<span style='color:#5959FF'>".$row[quxian]."</span>".$row[lx].' '.$row[time];
echo "</div>";
echo "<div id='gr'>";
echo "<li>".$row[q].$row[dw]."</li>";
echo "<li>".$row[mj].㎡."</li>";
echo "</div>"."</div>";
}
}
?>
<?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']."?$search&page=".($page-1)."\"><上一页</a>"; //上一页
}else {
// $key.="第一页 ";//第一页
// $key.="上一页"; //上一页
} if($pages>$page_len){
//如果当前页小于等于左偏移
if($page<=$pageoffset){
$max_p = $page_len;
}else{//如果当前页大于左偏移
//如果当前页码右偏移超出最大分页数
if($page+$pageoffset>=$pages+1){
$init = $pages-$page_len+1;
}else{
//左右偏移都存在时的计算
$init = $page-$pageoffset;
$max_p = $page+$pageoffset;
}
}
}
$init=1;
for($i=$init;$i<=$max_p;$i++){
if($i==$page){
$key.='<b>'.$i.'</b>';
} else {
$key.=" <a href=\"".$_SERVER['PHP_SELF']."?$search&page=".$i."\">[".$i."]</a> ";
}
}
if($page!=$pages){
$key.="<a href=\"".$_SERVER['PHP_SELF']."?$search&page=".($page+1)."\">下一页></a>";//下一页
//$key.="<a href=\"".$_SERVER['PHP_SELF']."?$search&page={$pages}\">最后一页</a>"; //最后一页
}else {
// $key.="下一页 ";//下一页
// $key.="最后一页"; //最后一页
}
$key.='</div>';
?><?php echo $key?>