日期:2014-05-17  浏览次数:20528 次

一段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