跪求高手解一个小问题.....帮帮忙吧...........................

mini_110 2010-08-17 02:41:41
比如:进入页面后显示有6页,当我点击到第三页或者别的页的时候,我在关键字搜索框里输入条件,点击查询后,显示共有2页内容,当前为第三页。当我往前翻页的时候,查询出的数据都没有错。翻页之后就显示正常了,共2页,当前为1页或者2页。这是怎么回事啊。
$rizhiziduan = isset($_POST['rizhiziduan'])?$_POST['rizhiziduan']:(isset($_GET['rizhiziduan'])?$_GET['rizhiziduan']:"");
$txt_ss = isset($_POST['txt_ss'])?$_POST['txt_ss']:(isset($_GET['txt_ss'])?$_GET['txt_ss']:"");

//输出表头
echo "<table border=1 width=700 cellspacing=0 style=border-collapse:collapse>";
echo "<tr style=background-image:url(img/new_hader_27.jpg) height=30 style=color:#ffffff><th>hotel_id</th><th>name</th><th>content</th><th>operating</th><th>time</th></tr>";
//查询数据
if( empty($rizhiziduan) || empty($txt_ss))
$query1 = "SELECT * FROM hotel_rizhi";
else
$query1 = "SELECT * FROM hotel_rizhi where $rizhiziduan like '%{$txt_ss}%'"; //在mytable表上执行SQL语句

$result1=mysql_query($query1) or die("<script>alert('查询的数据不存在');window.location='chaxun_rizhi.php';</script>");
$rowsPerPage=5;
$row = mysql_fetch_assoc($result1);
$numrows=$row[0];
$pages=intval($numrows/$rowsPerPage);
if ($numrows%$rowsPerPage)
$pages++;
$maxRowCount=mysql_num_rows($result1);

if($maxRowCount%$rowsPerPage==0){
$maxPage=(int)($maxRowCount/$rowsPerPage);
}else {
$maxPage=(int)($maxRowCount/$rowsPerPage)+1;
}
if (isset($_GET['curPage'])){
$page=$_GET['curPage'];
}else {
$page=1;
}
$start=$rowsPerPage*($page-1);
$sel = $query1 . " order by id limit $start,$rowsPerPage";
$result=mysql_query($sel) or die("查询失败");

//循环输出表中各个字段值
while ($row = mysql_fetch_array($result)) {
echo '<tr align="center" class="shu">';
echo '<td>'.$row['hotel_id'].'</td>';
echo '<td>'.$row['name'].'</td>';
echo '<td>'.$row['content'].'</td>';
echo '<td>'.$row['operating'].'</td>';
echo '<td>'.$row['time'].'</td>';
echo '</tr>';
}

if($page>1){
$prevPage=$page-1;
echo "<a href='?rizhiziduan={$rizhiziduan}&txt_ss=".rawurlencode($txt_ss)."&curPage=$prevPage'><img src='img/prev.gif'/></a>";
}
if ($page<$maxPage){
$nextPage=$page+1;
echo "<a href='?rizhiziduan={$rizhiziduan}&txt_ss=".rawurlencode($txt_ss)."&curPage=$nextPage'><img src='img/next.gif'/></a>";
}
echo "</table>";
echo "<div align='left' class='shu'>共有".$maxPage."页 当前为第".$page."页";
mysql_close($connection); //关闭与数据库的连接
...全文
60 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mini_110 2010-08-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xuzuning 的回复:]
错误太多! 比如:

//查询数据
if( empty($rizhiziduan) || empty($txt_ss))
$query1 = "SELECT * FROM hotel_rizhi";
else
$query1 = "SELECT * FROM hotel_rizhi where $rizhiziduan like '%{$txt_ss}%'"; //在mytab……
[/Quote]
多谢你的讲解
xuzuning 2010-08-17
  • 打赏
  • 举报
回复
错误太多! 比如:

//查询数据
if( empty($rizhiziduan) || empty($txt_ss))
$query1 = "SELECT * FROM hotel_rizhi";
else
$query1 = "SELECT * FROM hotel_rizhi where $rizhiziduan like '%{$txt_ss}%'"; //在mytable表上执行SQL语句
以上的 SQL 指令不会有效记录总数


$rowsPerPage=5;
$row = mysql_fetch_assoc($result1);
$numrows=$row[0];
mysql_fetch_assoc 返回关联数组,不存在 0 下标。$numrows 只能为0

$maxRowCount=mysql_num_rows($result1);
if($maxRowCount%$rowsPerPage==0){
$maxPage=(int)($maxRowCount/$rowsPerPage);
}else {
$maxPage=(int)($maxRowCount/$rowsPerPage)+1;
}
这段虽不错,但太过繁琐。一般宜写作:$maxPage = ceil($maxRowCount/$rowsPerPage);

Dleno 2010-08-17
  • 打赏
  • 举报
回复
你程序里的计算方式有问题。
你还是用那个帖子里,我发给你的完整代码吧。
从头到尾都是改了的。
你仔细看看
CunningBoy 2010-08-17
  • 打赏
  • 举报
回复

$maxRowCount=mysql_num_rows($result1);
if($maxRowCount%$rowsPerPage==0){
$maxPage=(int)($maxRowCount/$rowsPerPage);
}else {
$maxPage=(int)($maxRowCount/$rowsPerPage)+1;
}



改成
$maxPage = $pages;

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧