一段PHP的分页程序,报错

aloesky 2012-07-21 04:05:07
这是翻页程序:


include_once('conn.php');

if(isset($_GET['pclass']))
{
$p_class=$_GET['pclass'];
}
else
{
$p_class='';
}

$respage = mysql_query("SELECT COUNT(*) FROM product where p_class='$p_class';"); //$num 是数据表中符合条件的总纪录数
while($row = mysql_fetch_assoc($respage))
{
$num = $row[0];//这一行报错:Notice: Undefined offset: 0 in D:\setup\xampp\htdocs\products\showclass.php on line 88
}
$recordnum =40; // 每页显示多少条记录,
$pages = ceil($num/$recordnum); //一共有多少页
if (@$_GET["page"]) // 获取 url 中的参数 page
{


//$pre 和 $next 为后面前一页和后一页的连接参数 page 的值
// 如果 url 中的参数为 1 ,把当前页置为 1 前一页, $pre 也为一, $next 为 2
if($_GET["page"]==1)
{
$current = 1;//当前页
$pre = 1; //$pre 是前一页的
$next = 2; //$next 是后一页
}
else
{
$current = $_GET["page"];
$pre = $current-1;
$next = $current+1;
} // 如果 url 中的参数不为一(不是第一页),就把当前页取值为 url 中获得的参数, $pre 为当前页减 1 , $next 为加 1
}
else
{
$current = 1;
$pre = '1';
$next = 2;
}// 如果 url 中没有参数 page ,当前页置为 1 , $pre=1,$next=2
$now = ($current-1)*$recordnum;
$echopage = "<table width=450 cellpadding=0 cellspacing=0><tr>";
$echopage .= "<td><font>".$pages." 页 </font></td>";
$echopage .= "<td><font><a href=".$_SERVER["HP_SELF"]."?page=1> 第一页 </a><font></td><td><font><a href=".$_SERVER["HP_SELF"]."?page=".$pages."> 最后一页 </a></font></td>";//报错:Notice: Undefined index: HP_SELF in D:\setup\xampp\htdocs\products\showclass.php on line 120
$echopage .= "<td><font><a href=".$_SERVER["HP_SELF"]."?page=$pre> 前一页 </a> <a href=".$_SERVER["PHP_SELF"]."?page=$next> 后一页 </a></font></td>";//报错:Notice: Undefined index: HP_SELF in D:\setup\xampp\htdocs\products\showclass.php on line 120
$echopage .= "<td><font> 到第 <select name='topage' size='1' onchange='window.location=\"".$_SERVER["PHP_SELF"]."?page=\"+this.value'>\n";
for($i=1;$i<=$pages;$i++)
{
if($i==$current)
$echopage .= "<option value='$i' selected>$i</option>\n";
else
$echopage .= "<option value='$i'>$i</option>\n";
}
$echopage .= "</select> 页 </font></td>";
$echopage .= "</tr></table>";


下面是放在需要分页地方的代码:


<td ><div id="page"><?php echo $echopage ?></div></td>


=====在WEB端报错:

Notice: Undefined offset: 0 in D:\setup\xampp\htdocs\products\showclass.php on line 88

Notice: Undefined index: HP_SELF in D:\setup\xampp\htdocs\products\showclass.php on line 120

Notice: Undefined index: HP_SELF in D:\setup\xampp\htdocs\products\showclass.php on line 120

Notice: Undefined index: HP_SELF in D:\setup\xampp\htdocs\products\showclass.php on line 121
...全文
56 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
aloesky 2012-07-21
  • 打赏
  • 举报
回复
十分感谢,搞定了!


<?php
if(isset($_GET['pclass']))
{
$p_class=$_GET['pclass'];
}
else
{
$p_class='';
}
$respage = mysql_query("SELECT COUNT(*) FROM product where p_class='$p_class';");
while($row = mysql_fetch_array($respage))
{
$num = $row[0];
}
$recordnum =40;
$pages = ceil($num/$recordnum);
if (@$_GET["page"])
{
if($_GET["page"]==1)
{
$current = 1;
$pre = 1;
$next = 2;
}
else
{
$current = $_GET["page"];
$pre = $current-1;
$next = $current+1;
}
}
else
{
$current = 1;
$pre = '1';
$next = 2;
}
$now = ($current-1)*$recordnum;
$echopage = "<table width=450 cellpadding=0 cellspacing=0><tr>";
$echopage .= "<td><font>Totle".$pages." pages </font></td>";
$echopage .= "<td><font><a href=".$_SERVER["PHP_SELF"]."?page=1> First </a><font></td><td><font><a href=".$_SERVER["PHP_SELF"]."?page=".$pages."> 最后一页 </a></font></td>";
$echopage .= "<td><font><a href=".$_SERVER["PHP_SELF"]."?page=$pre> 前一页 </a> <a href=".$_SERVER["PHP_SELF"]."?page=$next> 后一页 </a></font></td>";
$echopage .= "<td><font> 到第 <select name='topage' size='1' onchange='window.location=\"".$_SERVER["PHP_SELF"]."?page=\"+this.value'>\n";
for($i=1;$i<=$pages;$i++)
{
if($i==$current)
$echopage .= "<option value='$i' selected>$i</option>\n";
else
$echopage .= "<option value='$i'>$i</option>\n";
}
$echopage .= "</select> 页 </font></td>";
$echopage .= "</tr></table>";
?>
xuzuning 2012-07-21
  • 打赏
  • 举报
回复
$num = $row[0];//这一行报错
是因为 mysql_fetch_assoc 返回的是关联数组,没有下标
改为 mysql_fetch_array

HP_SELF 应为 PHP_SELF

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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