Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB和PHP错误通知:未定义索引:变量_Php_Html_Mongodb_Mongodb Query_Xampp - Fatal编程技术网

MongoDB和PHP错误通知:未定义索引:变量

MongoDB和PHP错误通知:未定义索引:变量,php,html,mongodb,mongodb-query,xampp,Php,Html,Mongodb,Mongodb Query,Xampp,我正在尝试创建一个表单,在其中我将使用MongoDB和PHP添加数据、删除和更新。 但现在我被更新部分卡住了。 我一单击更新按钮,它就会抛出以下错误并删除所有以前存在的记录数据 这是update.php文件 <?php require 'vendor/autoload.php'; $conn=new MongoDB\Client("mongodb://localhost:27017"); $db=$conn->project; $collection=$db-

我正在尝试创建一个表单,在其中我将使用MongoDB和PHP添加数据、删除和更新。 但现在我被更新部分卡住了。 我一单击更新按钮,它就会抛出以下错误并删除所有以前存在的记录数据

这是update.php文件

<?php 

require 'vendor/autoload.php';
$conn=new MongoDB\Client("mongodb://localhost:27017");
$db=$conn->project;
$collection=$db->notes;
if(!empty($_GET['id'])){
    $id = $_GET['id'];
    $id =new  MongoDB\BSON\ObjectId($id);
    $docs=$collection->findOne(array('_id'=>$id));
    ?>

    <?php 

    try{
        if(isset($_POST['update'])){
        $collection->updateOne(
            array('_id' => $id),
            array(
                '$set' => array(
                    'author' => $_POST['author'],
                    'subject' => $_POST['subject'],
                    'title' => $_POST['title'],
                    'notes' => $_POST['notes'],
                    'difficulty' => $_POST['difficulty'],
                    'rel_topic' => $_POST['rel_topic']
                )
            )
            
        );
        echo " Updated successfully";
        // header("location:real.php");
    }
    }
    catch(Exception $e){
        echo 'Error '.$e->getMessage();
    }
    
}

    
?>
    <form method="post">
        <p>ID: <?php echo $docs['_id']?></p>
        Author:<input type='text' id='author' value='<?php echo $docs['author']?>'/><br>
        Title:<input type='text' id='title' value='<?php echo $docs['title']?>'/><br>
        Subject:<input type='text' id='subject' value='<?php echo $docs['subject']?>'/><br>
        Notes:<input type='text' id='notes' value='<?php echo $docs['notes']?>'/><br>
        Difficulty:<input type='text' id='difficulty' value='<?php echo $docs['difficulty']?>'/><br>
        Related Topic:<input type='text' id='rel_topic' value='<?php echo $docs['rel_topic']?>'/><br>
        <button type="submit" name="update">Update</button>
    </form>
请帮帮我

您的输入必须具有“name”属性

 Author:<input type='text' name='author' value='<?php echo $docs['author']?>'/><br>
2种方式:

在一次isset通话中检查所有按键:

if(isset($\u POST['author'],$\u POST['subject']){

创建循环并在缺少键时引发异常:

foreach(['author','subject']作为$key){
如果(isset($\u POST[$key])){
抛出新异常(“缺少键“$Key”);
}
}

在if条件之前,在顶部将docs变量初始化为空数组-

$docs = [];
然后,将其替换为html-

<form method="post">
<p>ID: <?php echo $docs['_id'] ?? ''; ?></p>
Author:<input type='text' id='author' value='<?php echo $docs['author'] ?? ''; ?>'/><br>
Title:<input type='text' id='title' value='<?php echo $docs['title'] ?? ''; ?>'/><br>
Subject:<input type='text' id='subject' value='<?php echo $docs['subject'] ?? ''; ?>'/><br>
Notes:<input type='text' id='notes' value='<?php echo $docs['notes'] ?? ''; ?>'/><br>
Difficulty:<input type='text' id='difficulty' value='<?php echo $docs['difficulty'] ?? ''; ?>'/><br>
Related Topic:<input type='text' id='rel_topic' value='<?php echo $docs['rel_topic'] ?? ''; ?>'/><br>
<button type="submit" name="update">Update</button>
</form>

身份证:


作者:这回答了你的问题吗?很高兴知道,你能接受这个答案吗?
$docs = [];
<form method="post">
<p>ID: <?php echo $docs['_id'] ?? ''; ?></p>
Author:<input type='text' id='author' value='<?php echo $docs['author'] ?? ''; ?>'/><br>
Title:<input type='text' id='title' value='<?php echo $docs['title'] ?? ''; ?>'/><br>
Subject:<input type='text' id='subject' value='<?php echo $docs['subject'] ?? ''; ?>'/><br>
Notes:<input type='text' id='notes' value='<?php echo $docs['notes'] ?? ''; ?>'/><br>
Difficulty:<input type='text' id='difficulty' value='<?php echo $docs['difficulty'] ?? ''; ?>'/><br>
Related Topic:<input type='text' id='rel_topic' value='<?php echo $docs['rel_topic'] ?? ''; ?>'/><br>
<button type="submit" name="update">Update</button>
</form>