0

こんにちは、無限のサブカテゴリ システムを作成しています。新しいカテゴリを作成するコードを除いて、すべて問題ありません...

ルートは「NULL」なので <input type="radio" name="parent_id" value="">、データベースにnull値を「書き込む」ことはできません..

値を設定しないと、Undefined Index エラーが発生します。isset、empty、is_null を試しましたが、すべて問題があるようです。

isset($var) is FALSE 
empty($var) is TRUE 
is_null($var) is TRUE 

isset($novar) is FALSE 
empty($novar) is TRUE 
is_null($novar) gives an Undefined variable error 

ここに私のコードがあるので、私が何をしようとしているのかを見ることができます。

//Check to see if the form has been submitted
if(isset($_POST['submit'])){

    //protect and then add the posted data to variables
    $name = protect($_POST['name']);
    $parent_id = $_POST['parent_id'];

    //check to see if a name was set
    if(!$name){
        //if any weren't display the error message
        echo "<center>Necesitas llenar todos los campos</center>";
    }else{
        //Check if the wanted name is more than 99 or less than 2 charcters long
        if(strlen($name) > 99 || strlen($name) < 2){
            //if it is display error message
            echo "<center>La categoría no puede rebasar los 100 caracteres!</center>";
        }else{


            if(is_null($parent_id)){

            $res = mysql_query("INSERT INTO `category` ( `name`) VALUES('".$name."')");

            echo "<center>Creaste la categoría correctamente!</center>";

            }
            else {

                $res = mysql_query("INSERT INTO `category` (`parent_id`, `name`) VALUES('".$parent_id."','".$name."')");

            echo "<center>Creaste la categoría correctamente!</center>";



                            }
                        }
                    }
}

コードは実際に機能し、カテゴリを作成します!

しかし、ルートカテゴリを作成すると、正常にカテゴリを作成しても「parent_id」に未定義のインデックスのエラーが表示され、

¿どうすればそのエラーを取り除くことができますか?

4

1 に答える 1

1

正しく理解している場合は、変更してみてください

if(is_null($parent_id)){
$res = mysql_query("INSERT INTO `category` ( `name`) VALUES('".$name."')");
echo "<center>Creaste la categoría correctamente!</center>";
}
else {
    $res = mysql_query("INSERT INTO `category` (`parent_id`, `name`) VALUES('".$parent_id."','".$name."')");
echo "<center>Creaste la categoría correctamente!</center>";

if(isset($_POST['parent_id']) && $_POST['parent_id']){
    $parent_id = $_POST['parent_id'];
    $res = mysql_query("INSERT INTO `category` (`parent_id`, `name`) VALUES('$parent_id','$name')");
} else {
    $res = mysql_query("INSERT INTO `category` (`name`) VALUES('$name')");
}

if ($res) {
    echo "<center>Creaste la categoría correctamente!</center>";
} else {
    echo "<center>Error creating a category!</center>";
}

$parent_id = $_POST['parent_id'];スクリプトの先頭にある行を削除またはコメントします

$name = protect($_POST['name']);
//$parent_id = $_POST['parent_id'];
于 2013-05-11T06:24:52.860 に答える