2016-08-20 85 views
0

我有2个表中phpmyadmin.I输出的类别名称从该表像这样在PHP试图输出时,每个类别的子类别:未定义指数从phpMyAdmin的表

<?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); 
?> 

这时如果用户点击其中一个类别时,属于用户点击的类别的子类别列表将从我的子表格中输出。子表的外键是cat_id。 错误occures当我尝试输出的子类别是这样的:

<?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)) 
?> 

outputed的错误是: enter image description here 猫和cat_nm的类别table.Have列的名字,我做错了什么吗? 哪个是输出子类别的正确方法?谢谢!

+0

验证将有助于您的事业。 – Script47

回答

1

因为,

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

看看你的链接,

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

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

应该$_GET['catnm']

普罗蒂普

应该是验证用户输入并使用prepared statements防止SQL Injection

+0

现在它说:未定义的索引:在第8行的C:\ xampp \ htdocs \ diloma \ Book_store \ subcat.php中的catnm –