情况是这样的··主页与一级目录需要传一个值  之前都还好  值也都传过去了  但是我在一级目录下要做分页  这时问题来了 
显示了N多错误  就是因为传的那个值有问题  希望大神给看下  
主页传值如下:
href='list.php?CaID=".$row['CategoryID']."'一级目录页如下  :
<body>
<div id="main">
<div id="top">
<!--注册登录-->
  
<!--注册登录-->
<!--logo-->
  <div class="advertising_top"> <img src="img/top.jpg" class="img_logo" /></div>
<!--logo结束-->
<!--导航开始-->
<div id="director">
<?
error_reporting(E_ALL);
$link=mysql_connect('localhost','root','5225')or die('Could not connect:'.mysql_error());
mysql_select_db('matv')or die ('Could not select database');
$sql="SELECT * FROM ma_category where CategoryLevel=1 and CategoryIsValid=1 ";
mysql_query('set Names "UTF8"');  /*db编码转为utf-8,要先转再查询,不然会乱码*/
$result=mysql_query($sql);      /*执行sql语句*/
$cou=mysql_num_rows(mysql_query($sql));
if ($cou!=0)
{
$count=round(765 / $cou); /*定义一个变量 浮点型取整算出每个二级分类菜单的宽*/
while($row = mysql_fetch_array($result,MYSQL_ASSOC))
    {
  echo "<div class='menu_top' ><a target='_self' width=".$count."px  class='menu_a' href='list.php?CaID=".$row['CategoryID']."'>".$row['CategoryName']."</a></div>";
  /*href链接为一级分类.html*/
}
mysql_free_result($result);
}
?>
</div>
<!--导航结束-->
</div><!--top结束-->
<div id="middle">
    <!--影片墙开始-->
  <div class="sort_title">
<div class="sort_left">热门电影</div>
<div class="sort_right">
<?
error_reporting(E_ALL);
echo"<a class='menu_a' target='_self' href='list.php?CaID=2'>更多</a>"
?></div>
  </div>

<ul class="ul_block">
<div class="outside">
<?
error_reporting(E_ALL);
$sql_film="SELECT *
FROM ma_program,ma_programcategory
WHERE ma_program.ProgramID=ma_programcategory.ProgramID
and ma_programcategory.CategoryParentID=2
ORDER BY ProgramCategoryID DESC
LIMIT 0,8";
$result=mysql_query($sql_film);
while($row=mysql_fetch_array($result,MYSQL_ASSOC))
{
echo"<li><div class='film'>
    <span><a href='detail.php?ProgramID=".$row['ProgramID']."'><img src='http://localhost/".$row['ProgramPicture']."' class='img_film'/></a>
      <br>
          <a href='detail.php?ProgramID=".$row['ProgramID']."' class='film_font'>".$row['ProgramName']."</a></span>
          </div>
      </li>";
}
?>
</div></ul>  <div class="sort_title">
<div class="sort_left">热门电视剧</div>
<div class="sort_right">
<?
error_reporting(E_ALL);
echo"<a class='menu_a' target='_self' href='list.php?CaID=4'>更多</a>"
?>
</div>
  </div>
<ul class="ul_block">
<div class="outside">
<?
error_reporting(E_ALL);
$sql_film="SELECT *
FROM ma_program,ma_programcategory
WHERE ma_program.ProgramID=ma_programcategory.ProgramID
and ma_programcategory.CategoryParentID=4
ORDER BY ProgramCategoryID DESC
LIMIT 0,8";
$result=mysql_query($sql_film);
while($row=mysql_fetch_array($result,MYSQL_ASSOC))
{
echo"<li><div class='film'>
    <span><a href='detail.php?ProgramID=".$row['ProgramID']."'><img src='".$row['ProgramPicture']."' class='img_film'/></a>
      <br>
          <a href='detail.php?ProgramID=".$row['ProgramID']."' class='film_font'></a></span>
         </div>
     </li>";
}
?>
</div></ul>
<!--影片墙结束-->
</div>
<div id="bottom">
    <p class="font_bz">备注:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</p>
    </div>
</div>解释:因为在一级目录的sql中也用到了CategoryID 所以我在主页传值就换了一个  换成了CaID 怕他传乱了  但是还是很多问题 在CaID 麻烦帮忙检查一下  应该怎么写  主要全都是CaID传值的问题应该  报错如下:
Undefined variable: CaID   就是这样

解决方案 »

  1.   

    Undefined variable: CaID出现在你用一个不存在的东西去获取数组索引xxx = 某数组[CaID]
    却没有if (isset(某数组[CaID]))
    {
      xxx = 某数组[CaID]
    }
      

  2.   

    在你给出的代码中 CaID 均只出现在串中,绝不会报错!
    结论:你贴错了代码
      

  3.   

    果断贴错了!~
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <link href="list.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <div id="main">
    <div id="top">
    <!--注册登录-->
      
    <!--注册登录-->
    <!--logo-->
      <div class="advertising_top"> <img src="img/top.jpg" class="img_logo" /></div>
    <!--logo结束-->
    <!--导航开始-->
    <div id="director">
    <?
    error_reporting(E_ALL);
    $_GET['CaID'];
    $link=mysql_connect('localhost','root','5225')or die('Could not connect:'.mysql_error());
    mysql_select_db('matv')or die ('Could not select database');
    $sql="SELECT * FROM ma_category where CategoryLevel=1 and CategoryIsValid=1 ";
    mysql_query('set Names "UTF8"');  /*db编码转为utf-8,要先转再查询,不然会乱码*/
    $result=mysql_query($sql);      /*执行sql语句*/
    $cou=mysql_num_rows(mysql_query($sql));  
    if ($cou!=0)
    {
    $count=round(765 / $cou); /*定义一个变量 浮点型取整算出每个二级分类菜单的宽*/
    while($row = mysql_fetch_array($result,MYSQL_ASSOC))
        {
      echo "<div class='menu_top' ><a target='_self' width=".$count."px  class='menu_a' href='list.php?CaID=".$row['CategoryID']."'>".$row['CategoryName']."</a></div>";
      /*href链接为获取的一级分类.html*/
    }
    mysql_free_result($result);
    }
    ?>
    </div>
    <!--导航结束-->
    </div>
    <!--top结束-->
    <div id="middle">
        <!--分类名称-->
       <div class="sort_title">
     <div class="sort_left">
    <div class="left_text">
    <?
    error_reporting(E_ALL);
    $sql="SELECT CategoryName from ma_category where CategoryID=".$CaID;
    $result=mysql_query($sql);
    $row=mysql_fetch_array($result);
    echo"".$row['CategoryName']."";
    ?>
    </div><div class="left_textt">
    <?
    error_reporting(E_ALL);
    $sql="SELECT * FROM ma_category where CategoryLevel=2 and CategoryIsValid=1 and CategoryParentID=".$CaID;
    $result=mysql_query($sql);      /*执行sql语句*/while($row = mysql_fetch_array($result,MYSQL_ASSOC))
        {
      echo "<div class='menu_top' ><a target='_self' class='menu_a' href='listt.php?CaaID=".$row['CategoryID']."'>".$row['CategoryName']."</a></div>";
      /*href链接为二级分类.html*/
    }
    ?></div>
         </div>
         <div class="sort_right">
    <?
    error_reporting(E_ALL);
    echo "<a class='menu_a' target='_self' href='default.php?'>返回</a>"
    ?>
    </div>
       </div>
       <!--影片墙开始-->
    <?
    $sql="SELECT ma_program.ProgramID FROM ma_program,ma_programcategory
    WHERE ma_program.ProgramID=ma_programcategory.ProgramID
    AND ma_programcategory.CategoryParentID=".$CaID;
    $total=mysql_num_rows(mysql_query($sql));
    $pagesize=4;           //每页显示数据条数
    $pagelen=5;            //分页显示页码的个数
    $pages=ceil($total/$pagesize);     //取整计算最大分页数
    $page=isset($_GET['page'])?$_GET['page']:1;     //默认当前页码为1
    $pageoffset=2;                                //页码偏移量   本站中固定页码为5  所以偏移量不做动态 固定为2
    //影片开始$sql_a="SELECT * FROM ma_program,ma_programcategory
    WHERE ma_program.ProgramID=ma_programcategory.ProgramID
    AND ma_programcategory.CategoryParentID=".$CaID."
    ORDER BY ma_programcategory.CategoryID DESC
    LIMIT ".(($page-1)*$pagesize).",".$pagesize;
    $result=mysql_query($sql_a);
    while($row = mysql_fetch_array($result,MYSQL_ASSOC))
    {
      echo"<div class='film'>
        <span><a href='detail.php?ProgramID=".$row['ProgramID']."'><img src='http://localhost/".$row['ProgramPicture']."' class='img_film'/></a>
              <br>
              <a href='detail.php?ProgramID=".$row['ProgramID']."' class='film_font'>".$row['ProgramName']."</a></span>
              </div>
          ";
    }//影片结束
    //分也开始
    if($page!=1)
    {
      echo"<a href='list.php?page.=".($page-1)."'>上一页</a>";      //输出上一页连接
      if($pages>$pagelen)          //例如总共6页 但页码为12345 
         {
              if($page<=$pageoffset)               //例如 当前为第二页  总页数为7页  
              {
             $init=1;
    $max=$pagelen;
             for($i=1;$i<=$max;$i++)
            {
             echo"<li><a href='list.php'?page=".$i."&CaID=".$CaID.">".$i."</li>";
         }
           }
      else   //当前页大于等于3时
          {
              if($page+$pageoffset>=$pages+1)  //右偏移超出最大页码数  例如当前页为5 最大页码为6
              {
                  $init=$page-$pagelen+1;
              for($i=$init;$i<=$pages;$i++)
      {
                      echo"<li><a href='list.php'?page=".$i."&CaID=".$CaID."'>".$i."</a></li>";
      }
              }
          else  //左右偏移都存在时
               {
                   $init=$page-$pageoffset;
               $max=$page+$pageoffset;
               for($i=$init;$i<=$max;$i++)
                 {
                           echo"<li><a href='list.php'?page=".$i."&CaID=".$CaID.">".$i."</a></li>";
                     }
               }
          }
           }  
      else
      {
      for($i=1;$i<=$pages;$i++)
      {
        echo"<li><a href='list.php?page=".$i.">".$i."</a></li>";
      }
      }
      echo"<a href='list.php?page=".($page+1)."&CaID=".$CaID."'>下一页</a>";
    }
    else 
      {
      echo"<li><a href=''>上一页</a></li>";
    if ($pagelen<=$pages)
      {
            for($i=1;$i<=$pagelen;$i++)
          {
            echo "<li><a href='list.php'?page=".$i."&CaID=".$CaID.">".$i."</a></li>";
          }
      }
    else
      {
         for($i=1;$i<=$pages;$i++)
     echo "<li><a href='list.php'?page=".$i."&CaID=".$CaID.">".$i."</a></li>";
      }
        echo"<a href='list.php?page=".($page+1)."&CaID=".$CaID."'>下一页</a>";
      }
    ?>
    <!--影片墙结束-->
    </div><!--middle结束--><div id="bottom">
        <p class="font_bz">备注:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</p>
        </div>
    </div>
    </div>
    </body></html>
      

  4.   


    比如说
    在list.php
    你想输出当前请求的分类id的文章
     href='list.php?CaID=".$row['CategoryID']
    但是,你直接访问list.php时候,因为那个CategoryID没有取到值,所以相当于访问
    $row[],就出现这种错误
    当然问题不见得是CategoryID没有值
    只要你程序里某个数组, 所用索引是不存在的,那么就有这个错所以,你要在访问一些可能会因为某种情况(例如没传参数)导致没有数组索引时候,这样if (isset($某数组['xxx']) )
    {
      操作 $某数组['xxx'];
    }这样比较严谨当然你也可以屏蔽Notice级错误
      

  5.   

    $_GET['CaID']; 这里就会报错可以
     $cat_id = 默认值;
    if (isset($_GET['CaID']) )
    {
       if (!empty($_GET['CaID']))
       {
          $cat_id = intval($_GET['CaID']);
       }
    }
    sql = ...... where cat_id= $cat_id
      

  6.   

    黑猪哥能帮看下我后来贴的代码吗   最开始的贴错了   你说的我明白  但是对于网站的导航  我都是复制过去的  他的值应该都不会错啊    我在后面每一个href里面都穿了CaID了啊   不明白···
      

  7.   

    似的   list是一级分类文件  listt是二级分类文件   原来那句GET貌似是不报错的  加了分页以后就错了  应该是这样
      

  8.   


    $sql_a="SELECT * FROM ma_program,ma_programcategory
    WHERE ma_program.ProgramID=ma_programcategory.ProgramID
    AND ma_programcategory.CategoryParentID=".$CaID."
    ORDER BY ma_programcategory.CategoryID DESC
    LIMIT ".(($page-1)*$pagesize).",".$pagesize;
    改成$sql_a="SELECT * FROM ma_program,ma_programcategory
    WHERE ma_program.ProgramID=ma_programcategory.ProgramID
    AND ma_programcategory.CategoryParentID=".$CaID."
    ORDER BY ma_programcategory.CategoryID DESC
    LIMIT ".(($page-1)*$pagesize+1).",".$pagesize;
    试下
      

  9.   

    error_reporting(E_ALL);
    $CaID = $_GET['CaID'];