尝试从 phpmyadmin table 输出每个类别的子类别时 php 中的未定义索引

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

我在 phpmyadmin.I 中有 2 个 table 从这个 table 中输出类别名称,就像在 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);
?>

然后,如果用户单击其中一个类别,则我的子类别 table 将输出属于用户单击的类别的子类别列表。子目录 table 的外键是 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))
?>

输出的错误是: cat 和 cat_nm 是类别 table.Have 的列名称 我在这里做错了什么? 哪个是输出子类别的正确方法?谢谢!

因为,

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

看看你的link,

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

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

应该是$_GET['catnm'].

专业提示

应该验证您的用户输入并使用prepared statements to prevent SQL Injection