0

PHP、MYSQL、JQueryを使用して2つのレベルのドロップダウン選択ボックスを作成しています。すべて問題ないように見えますが、親カテゴリに子がない場合、または子を選択しない場合、エラーが発生し、このエラーの意味と解決方法がわかりません。私はあなたにみんなの助けが必要です。

エラー: 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']定義されていない(存在しない)ことを意味します。mysqli_SQLインジェクションと使用または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 に答える