How to Add/Append Data to JSON File using PHP

Getting Started

I've used Bootstrap in this tutorial which is a CSS framework and is included in the downloadable of this tutorial but if you want, you may download Bootstrap using this link. Also, take note that I'll be using members.json that I have included in the downloadable of this tutorial.

Displaying our JSON Data

Next, we display the existing data in our JSON file and create the add/append form as well. Create a new file, name it as index.php and paste the codes below.
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.         <meta charset="utf-8">
  5.         <title>How to Add/Append Data to JSON File using PHP</title>
  6.         <link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.min.css">
  7. </head>
  8. <body>
  9. <div class="container">
  10.         <h1 class="page-header text-center">Add/Append Data to JSON File</h1>
  11.         <div class="row">
  12.                 <div class="col-sm-3 col-sm-offset-1">
  13.                         <form method="POST" action="add.php">
  14.                                 <div class="form-group">
  15.                                         <label>ID</label>
  16.                                         <input type="text" class="form-control" name="id">
  17.                                 </div>
  18.                                 <div class="form-group">
  19.                                         <label>Firstname</label>
  20.                                         <input type="text" class="form-control" name="firstname">
  21.                                 </div>
  22.                                 <div class="form-group">
  23.                                         <label>Lastname</label>
  24.                                         <input type="text" class="form-control" name="lastname">
  25.                                 </div>
  26.                                 <div class="form-group">
  27.                                         <label>Address</label>
  28.                                         <input type="text" class="form-control" name="address">
  29.                                 </div>
  30.                                 <div class="form-group">
  31.                                         <label>Gender</label>
  32.                                         <input type="text" class="form-control" name="gender">
  33.                                 </div>
  34.                                 <button type="submit" class="btn btn-primary" name="add">Add</button>
  35.                         </form>
  36.                         <?php
  37.                                 session_start();
  38.                                 if(isset($_SESSION['message'])){
  39.                                         ?>
  40.                                         <div class="alert alert-info text-center" style="margin-top:20px;">
  41.                                                 <?php echo $_SESSION['message']; ?>
  42.                                         </div>
  43.                                         <?php
  44.                                         unset($_SESSION['message']);
  45.                                 }
  46.                         ?>
  47.                        
  48.                 </div>
  49.                 <div class="col-sm-7">
  50.                         <table class="table table-bordered table-striped">
  51.                                 <thead>
  52.                                         <th>ID</th>
  53.                                         <th>Firstname</th>
  54.                                         <th>Lastname</th>
  55.                                         <th>Address</th>
  56.                                         <th>Gender</th>
  57.                                 </thead>
  58.                                 <tbody>
  59.                                         <?php
  60.                                                 $data = file_get_contents('members.json');
  61.                                                 $data = json_decode($data);
  62.                                                 foreach($data as $row){
  63.                                                         echo "
  64.                                                                 <tr>
  65.                                                                         <td>".$row->id."</td>
  66.                                                                         <td>".$row->firstname."</td>
  67.                                                                         <td>".$row->lastname."</td>
  68.                                                                         <td>".$row->address."</td>
  69.                                                                         <td>".$row->gender."</td>
  70.                                                                 </tr>
  71.                                                         ";
  72.                                                 }
  73.                                         ?>
  74.                                 </tbody>
  75.                         </table>
  76.                 </div>
  77.         </div>
  78. </div>
  79. </body>
  80. </html>

Creating our Append Script

Lastly, we create the script that adds data to our JSON file. Create a new file, name it as add.php and paste the codes below.
  1. <?php
  2.         session_start();
  3.         if(isset($_POST['add'])){
  4.                 $data = file_get_contents('members.json');
  5.                 $data_array = json_decode($data);
  6.                 //data in our POST
  7.                 $input = array(
  8.                         'id' => $_POST['id'],
  9.                         'firstname' => $_POST['firstname'],
  10.                         'lastname' => $_POST['lastname'],
  11.                         'address' => $_POST['address'],
  12.                         'gender' => $_POST['gender']
  13.                 );
  14.                 //append the POST data
  15.                 $data_array[] = $input;
  16.                 //return to json and put contents to our file
  17.                 $data_array = json_encode($data_array, JSON_PRETTY_PRINT);
  18.                 file_put_contents('members.json', $data_array);
  19.                 $_SESSION['message'] = 'Data successfully appended';
  20.         }
  21.         else{
  22.                 $_SESSION['message'] = 'Fill up add form first';
  23.         }
  24.         header('location:index.php');
  25. ?>
That ends this tutorial. Happy Coding :)

Comments

Maybe I am not following. When you say "Append Data", do you mean existing data can be updated? If I try to "append" updated data to record 1, the form creates a second ID 1?

Add new comment