高分请教高手:PHP对搜索结果进行分页,请高人改改代码(目前点击下一页就会显示全部记录,不是搜索结果)

formname="form1"method="GET"action=""><tablewidth="98%"height="38"border="1"cellpaddi... form name="form1" method="GET" action=""> <table width="98%" height="38" border="1" cellpadding="1" cellspacing="0" bordercolor="#FFFFFF"
bgcolor="#9ECFEE" class="tableBorder_gray">
<tr>
<td align="center">
<img src="Images/search.gif" width="37" height="29"></td>
<input name="key1" type="text" id="key1" size="50">
<input name="Submit" type="submit" class="btn_grey" value="查询"></td>

$key1=$_GET[key1];
$pagesize1=10;
$total1=mysql_num_rows(mysql_query("select b.*,c.name as bookcasename,p.pubname,t.typename from tb_bookinfo b left

join tb_bookcase c on b.bookcase=c.id join tb_publishing p on b.ISBN=p.ISBN join tb_booktype t on b.typeid=t.id
where $f like '%$key1%' ORDER BY `id` DESC"));$pagecount1=ceil($total1/$pagesize1);
if ($total1<=$pagesize1){
$pagecount1=1;
}
if(($total1%$pagesize1)!=0){
$pagecount1=intval($total1/$pagesize1)+1;

}else{
$pagecount1=$total1/$pagesize1;

}
if(($_GET[page1])==""){
$page1=1;

}else{
$page1=intval($_GET[page1]);

}

$sql=mysql_query("select b.*,c.name as bookcasename,p.pubname,t.typename from tb_bookinfo b left join tb_bookcase c
on b.bookcase=c.id join tb_publishing p on b.ISBN=p.ISBN join tb_booktype t on b.typeid=t.id where $f like '%
$_REQUEST[key1]%' ORDER BY `id` DESC limit ".($page1-1)*$pagesize1.",$pagesize1");
$info=mysql_fetch_array($sql);
if($info==true){
do{
?>
输出数据库搜索出来的内容
<?php
}while($info=mysql_fetch_array($sql));
}else{
?>
<table width="100%" height="30" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="36" align="center">您检索的信息不存在,请重新检索!</td>
</tr>
</table>
<?php
}
}
}
?>
</table>
</td>
</tr>
</table>
<table>
<tr>
<td>

<span class="STYLE3">结果共计<?php echo $total1 ?>条, 当前第<?php echo $page1 ?>页/共<?php echo $pagecount1 ?>
页</span> : <a href="?page1=<?php echo ($page1 > 1)?($page1 - 1):1;s?>"class="word_orange">上一页</a> <a href="?page1=<?php echo ($page1 < ($pagecount1 - 1))?
($page1+1):$pagecount1;?>" class="word_orange">下一页</a>
展开
 我来答
匿名用户
2012-09-18
展开全部
分页的时候把key带上,就是搜索的内容,
href="?key1=<?php echo $_GET['key1']&page1=<?php echo ($page1 < ($pagecount1 - 1))?
($page1+1):$pagecount1;?>
更多追问追答
追问
不行呀,报错了。大大们帮忙调试调试,我都折腾了好几天了。
追答
报什么错误,不是sql语句问题,你的key1没有传过去,like 所有都出来了
xax1126
2012-09-20 · 贡献了超过118个回答
知道答主
回答量:118
采纳率:0%
帮助的人:30.8万
展开全部
mysql_num_rows(mysql_query("select b.*,c.name as bookcasename,p.pubname,t.typename from tb_bookinfo b left

join tb_bookcase c on b.bookcase=c.id join tb_publishing p on b.ISBN=p.ISBN join tb_booktype t on b.typeid=t.id limit ($page1-1)*$pagesize1,$pagesize1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浩劫果子
2012-09-19
知道答主
回答量:89
采纳率:0%
帮助的人:26.3万
展开全部
你在进行limit的时候把两个参数在上面定义一下,($page1-1)*$pagesize1.这种情况查询有可能出错,limit后面只写两个参数,不要写式子。不行的话你按我思路找下错误,首先看你传过来的页数是不是你要得到的页数,得到页数后要进行查询,要计算一个偏移量(也就是limit后面两个参数的前面的那个参数),(当前页-1)*每页显示的数量 然后进行limit查询,我写个大概你要再过滤自己过滤下:select * from 表名 limit 偏移量,每页显示数量;把返回结果输出,看是不是当前页应该显示的内容,是的话不就好说了么,不是的话最大问题应该出于你的select那里,你先进行一个简单的查询,只用limit这个过滤进行查询,然后再慢慢套你的sql过滤,不行的话再留言,我给你看看。
追问
你好,我想是不是可以把公式结果赋值给变量,然后在SQL语句中把变量赋给Limt进行控制,你看可以吗?
追答
对,你试试先,不行再说
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
douyl_2010
2012-09-18 · TA获得超过284个赞
知道小有建树答主
回答量:422
采纳率:0%
帮助的人:102万
展开全部
echo $sql输出 来,看看语句再找一下原因
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式