尝试从 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。
我在 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))
?>
输出的错误是:
因为,
$_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。