基于 PHP 和 JSON 的 CRUD 操作

我有一个包含名称、图像、性别和名称字段的表单。我将这些表单变量存储在 Json 文件中。


我将图像存储在上传文件夹中并更新表单输入,json 文件中的图像路径。


[{"name":"John", "image":"uploads/john-2019061656551615.jpg", "gender":male, "designation":developer},

{"name":"Russel", "image":"uploads/russel-201906161515.jpg", "gender":male, "designation":developer},

{"name":"Jason", "image":"uploads/jason-20190616451657.jpg", "gender":male, "designation":developer}

]

我想在需要时更新 Json 文件。我尝试使用以下代码编辑 json 文件,但每次提交编辑表单时,它都会更新为新记录。


if (isset($_GET["id"])) {

    $id = (int) $_GET["id"];

    $getfile = file_get_contents('data.json');

    $all = json_decode($getfile, true);

    $jsonfile = $all;

    $jsonfile = $jsonfile[$id];


    $post["name"] = isset($_POST["name"]) ? $_POST["name"] : "";

    $post["gender"] = isset($_POST["gender"]) ? $_POST["gender"] : "";

    $post["fileToUpload"] = isset($_POST["fileToUpload"]) ? $_POST["fileToUpload"] : "";

    $post["designation"] = isset($_POST["designation"]) ? $_POST["designation"] : "";

}


$target_dir = "uploads/";

$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);

if(isset($_POST["submit"])) {


    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {

        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";


           if(file_exists('data.json'))  

           {  

                $current_data = file_get_contents('data.json');  

                $array_data = json_decode($current_data, true);  

                $extra = array(  

                     'name'               =>     $_POST["name"],  

                     'image'               =>     $target_file,  

                     'gender'          =>     $_POST["gender"],  

                     'designation'     =>     $_POST["designation"]  

                );  

 

如何仅编辑特定记录并在 json 文件中更新它?


烙印99
浏览 141回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP