我正在使用PHP,MYSQL和JQuery创建两个级别的下拉选择框。一切似乎都很好,但是当我的父类别没有孩子或者我没有选择孩子时它会给我错误,我无法理解这个错误意味着什么以及如何解决。我需要你帮助。
错误:
Notice: Undefined index: f_child_cat in C:\xampp\htdocs\pathtofile\index.php on line 58
You selected 12 & You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
这是我的前端代码
<?php if(isset($_POST['submit'])){
$drop = $_POST['first_child_cat'];
$f_child_cat = $_POST['f_child_cat'];
echo "You selected ";
echo $drop." & ".$f_child_cat;
$query = mysql_query("SELECT * FROM qa_categories WHERE parentid = $f_child_cat")
or die(mysql_error());
echo '<ul>';
while($cats = mysql_fetch_array( $query ))
echo '<li>',$cats['title'],'</li>';
echo '</ul>';
}
?>
答案 0 :(得分:1)
$_POST['f_child_cat']
未定义,在使用之前先检查该值是否存在。
$f_child_cat = isset($_POST['f_child_cat'])?$_POST['f_child_cat']:false;
if ($f_child_cat){
$f_child_cat = mysql_real_escape_string($f_child_cat); // always escape
/// your query.
}
注意: mysql_ *函数被删除,使用mysqli或pdo作为替代。
答案 1 :(得分:1)
这意味着$_POST['f_child_cat']
未定义(不存在)。您应该使用绑定参数来防止SQL注入并使用mysqli_
或PDO
函数。
由于这是您查询的一部分,我建议您像这样包装查询:
if( isset($_POST['f_child_cat']) && !empty($_POST['f_child_cat']) ) {
... call db
}
else {
echo "You didn't select this"
}