CRUD 6 Membuat Halaman Update

CRUD 2 Membuat File config.php

Langkah keenam kita akan membuat file update.php, file update berfungsi untuk merubah data yang sudah ada di database.

Membuat File update.php

<?php
// Include config file
require_once "config.php";
 
// Define variables and initialize with empty values
$name = $address = $salary = "";
$name_err = $address_err = $salary_err = "";
 
// Processing form data when form is submitted
if(isset($_POST["id"]) && !empty($_POST["id"])){
 // Get hidden input value
 $id = $_POST["id"];
 
 // Validate name
 $input_name = trim($_POST["name"]);
 if(empty($input_name)){
  $name_err = "Please enter a name.";
 } elseif(!filter_var($input_name, FILTER_VALIDATE_REGEXP, array("options"=>array("regexp"=>"/^[a-zA-Z\s]+$/")))){
  $name_err = "Please enter a valid name.";
 } else{
  $name = $input_name;
 }
 
 // Validate address address
 $input_address = trim($_POST["address"]);
 if(empty($input_address)){
  $address_err = "Please enter an address.";  
 } else{
  $address = $input_address;
 }
 
 // Validate salary
 $input_salary = trim($_POST["salary"]);
 if(empty($input_salary)){
  $salary_err = "Please enter the salary amount.";  
 } elseif(!ctype_digit($input_salary)){
  $salary_err = "Please enter a positive integer value.";
 } else{
  $salary = $input_salary;
 }
 
 // Check input errors before inserting in database
 if(empty($name_err) && empty($address_err) && empty($salary_err)){
  // Prepare an update statement
  $sql = "UPDATE employees SET name=?, address=?, salary=? WHERE id=?";
   
  if($stmt = mysqli_prepare($link, $sql)){
   // Bind variables to the prepared statement as parameters
   mysqli_stmt_bind_param($stmt, "sssi", $param_name, $param_address, $param_salary, $param_id);
   
   // Set parameters
   $param_name = $name;
   $param_address = $address;
   $param_salary = $salary;
   $param_id = $id;
   
   // Attempt to execute the prepared statement
   if(mysqli_stmt_execute($stmt)){
    // Records updated successfully. Redirect to landing page
    header("location: index.php");
    exit();
   } else{
    echo "Something went wrong. Please try again later.";
   }
  }
   
  // Close statement
  mysqli_stmt_close($stmt);
 }
 
 // Close connection
 mysqli_close($link);
} else{
 // Check existence of id parameter before processing further
 if(isset($_GET["id"]) && !empty(trim($_GET["id"]))){
  // Get URL parameter
  $id =  trim($_GET["id"]);
  
  // Prepare a select statement
  $sql = "SELECT * FROM employees WHERE id = ?";
  if($stmt = mysqli_prepare($link, $sql)){
   // Bind variables to the prepared statement as parameters
   mysqli_stmt_bind_param($stmt, "i", $param_id);
   
   // Set parameters
   $param_id = $id;
   
   // Attempt to execute the prepared statement
   if(mysqli_stmt_execute($stmt)){
    $result = mysqli_stmt_get_result($stmt);
 
    if(mysqli_num_rows($result) == 1){
     /* Fetch result row as an associative array. Since the result set
     contains only one row, we don't need to use while loop */
     $row = mysqli_fetch_array($result, MYSQLI_ASSOC);
     
     // Retrieve individual field value
     $name = $row["name"];
     $address = $row["address"];
     $salary = $row["salary"];
    } else{
     // URL doesn't contain valid id. Redirect to error page
     header("location: error.php");
     exit();
    }
    
   } else{
    echo "Oops! Something went wrong. Please try again later.";
   }
  }
  
  // Close statement
  mysqli_stmt_close($stmt);
  
  // Close connection
  mysqli_close($link);
 }  else{
  // URL doesn't contain id parameter. Redirect to error page
  header("location: error.php");
  exit();
 }
}
?>
 
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Update Record</title>
 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
 <style type="text/css">
  .wrapper{
   width: 500px;
   margin: 0 auto;
  }
 </style>
</head>
<body>
 <div class="wrapper">
  <div class="container-fluid">
   <div class="row">
    <div class="col-md-12">
     <div class="page-header">
      <h2>Update Record</h2>
     </div>
     <p>Please edit the input values and submit to update the record.</p>
     <form action="<?php echo htmlspecialchars(basename($_SERVER['REQUEST_URI'])); ?>" method="post">
      <div class="form-group <?php echo (!empty($name_err)) ? 'has-error' : ''; ?>">
       <label>Name</label>
       <input type="text" name="name" class="form-control" value="<?php echo $name; ?>">
       <span class="help-block"><?php echo $name_err;?></span>
      </div>
      <div class="form-group <?php echo (!empty($address_err)) ? 'has-error' : ''; ?>">
       <label>Address</label>
       <textarea name="address" class="form-control"><?php echo $address; ?></textarea>
       <span class="help-block"><?php echo $address_err;?></span>
      </div>
      <div class="form-group <?php echo (!empty($salary_err)) ? 'has-error' : ''; ?>">
       <label>Salary</label>
       <input type="text" name="salary" class="form-control" value="<?php echo $salary; ?>">
       <span class="help-block"><?php echo $salary_err;?></span>
      </div>
      <input type="hidden" name="id" value="<?php echo $id; ?>"/>
      <input type="submit" class="btn btn-primary" value="Submit">
      <a href="index.php" class="btn btn-default">Cancel</a>
     </form>
    </div>
   </div>  
  </div>
 </div>
</body>
</html>

Komentar