0

我正在使用 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>';
}
?>
4

2 回答 2

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 作为替代。

于 2013-03-22T18:40:08.177 回答
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"
}
于 2013-03-22T18:40:10.500 回答