尝试从 phpmyadmin 表输出每个类别的子类别时,php 中的未定义索引 [duplicate]

Undefined index in php when trying to output the subcategories of each category from a phpmyadmin table [duplicate]

提问人:coolest 提问时间:8/20/2016 最后编辑:Vladimircoolest 更新时间:8/20/2016 访问量:568

问:

我在phpmyadmin中有2个表。我在 php 中输出此表中的类别名称,如下所示:

<?php
$query="select * from category " ; 
$res=mysqli_query($conn,$query); 
while($row=mysqli_fetch_assoc($res))
{
  echo '<li>
      <a href="subcat.php?cat='.$row[ 'cat_id']. '&catnm='.$row[ "cat_nm"]. '">'.$row[ "cat_nm"]. '
      </a>
      </li>'; 
}
mysqli_close($conn);
?>

然后,如果用户单击这些类别之一,则从我的 subcat 表中输出属于用户单击的类别的子类别列表。subcat 表的外键为 cat_id。 当我尝试像这样输出子类别时发生错误:

<?php
$q = "select * from subcat  where parent_id = ".$_GET['cat'];//line 6
$cat=$_GET['cat_nm'];//line 8
$res = mysqli_query($conn,$q) or die("Can't Execute Query..");
$row1 = mysqli_fetch_assoc($res);
do
  {
    echo '<li>'.$row1['subcat_nm'].'</li>';
   }
while($row1 = mysqli_fetch_assoc($res))
?>

输出的错误是: enter image description here cat 和 cat_nm 是类别表的列名。我在这里做错了什么吗? 输出子类别的正确方法是什么?谢谢!

php mysql phpmyadmin localhost 未定义索引

评论

0赞 Script47 8/20/2016
验证将有助于您的事业。

答:

1赞 Script47 8/20/2016 #1

因为

$_GET['cat_nm'] != $_GET['catnm']

看看你的链接,

<a href="subcat.php?cat='.$row[ 'cat_id']. '&catnm='.$row[ "cat_nm"]. '">'.$row[ "cat_nm"]. '

--------------------------------------------^^^^^^

它应该是.$_GET['catnm']

专业提示

您应该验证您的用户输入并使用准备好的语句来防止 SQL 注入

评论

0赞 coolest 8/20/2016
现在它说:Undefined index: catnm in C:\xampp\htdocs\diloma\Book_store\subcat.php 在第 8 行