读书人

一段PHP的分页程序报错,该如何解决

发布时间: 2012-08-07 14:54:48 作者: rapoo

一段PHP的分页程序,报错
这是翻页程序:

PHP code
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>"; 


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

PHP code
<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


[解决办法]
$num = $row[0];//这一行报错
是因为 mysql_fetch_assoc 返回的是关联数组,没有下标
改为 mysql_fetch_array

HP_SELF 应为 PHP_SELF

读书人网 >PHP

热点推荐