Bootstrap 5
https://getbootstrap.com/docs/5.0/getting-started/introduction/
https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css
https://getbootstrap.com/docs/5.0/components/modal/
Jquery
https://jquery.com/download/
CDN : jsDelivr CDN
https://www.jsdelivr.com/package/npm/jquery
https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js
Bootstrap icons
https://icons.getbootstrap.com/#install
https://cdn.jsdelivr.net/npm/bootstrap-icons@1.8.1/font/bootstrap-icons.css
CREATE TABLE `members` (
`id` int(11) NOT NULL,
`firstname` varchar(30) NOT NULL,
`lastname` varchar(30) NOT NULL,
`address` varchar(150) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `members` (`id`, `firstname`, `lastname`, `address`) VALUES
(1, 'Airi ', 'Satou', 'Tokyo'),
(2, 'Angelica ', 'Ramos', 'London'),
(3, 'Ashton ', 'Cox', 'San Francisco'),
(4, 'Bradley', 'Greer', 'London'),
(5, 'Brenden ', 'Wagner', 'San Francisco');
ALTER TABLE `members`
ADD PRIMARY KEY (`id`);
ALTER TABLE `members`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
index.php
//index.php <?php include('conn.php'); session_start(); ?> <!DOCTYPE html> <html> <head> <title>PHP - OOP CRUD Operation</title> <script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script> <link rel = "stylesheet" type = "text/css" href = "https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" /> <script src = "https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"></script> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.8.1/font/bootstrap-icons.css"> </head> <body> <div class="container"> <div style="height:50px;"></div> <div class="well" style="margin-left:auto; margin-right:auto; padding:auto; width:70%;"> <span style="font-size:25px; color:blue"><strong>PHP OOP Mysqli CRUD (Create Read Update and Delete)</strong></span> <span class="pull-right"> <button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#addnew"> <i class="bi bi-clipboard2-plus-fill"></i> Add Newl </button> </span> <div style="height:15px;"></div> <table class="table table-striped table-bordered table-hover"> <thead> <th>Firstname</th> <th>Lastname</th> <th>Address</th> <th>Action</th> </thead> <tbody> <?php $query=$conn->query("select * from members"); while($row=$query->fetch_array()){ ?> <tr> <td><?php echo $row['firstname']; ?></td> <td><?php echo $row['lastname']; ?></td> <td><?php echo $row['address']; ?></td> <td> <button class="btn btn-success" data-bs-toggle="modal" data-bs-target="#editModal<?php echo $row['id']; ?>"><i class="bi bi-pencil"></i> Edit</button> || <button class="btn btn-danger" data-bs-toggle="modal" data-bs-target="#deleteModal<?php echo $row['id']; ?>"><i class="bi bi-trash"></i> Delete</button> <?php include('modal.php'); ?> </td> </tr> <?php } ?> </tbody> </table> <?php if(isset($_SESSION['msg'])){ ?> <div class="alert alert-success"> <center><?php echo $_SESSION['msg']; ?></center> </div> <?php unset($_SESSION['msg']); } ?> </div> <?php include('add_modal.php'); ?> </div> </body> </html>conn.php
//conn.php <?php $conn = new mysqli("localhost", "root", "", "testingdb"); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } ?>add_modal.php
//add_modal.php <!-- Add New --> <div class="modal fade" id="addnew" tabindex="-1" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel">Modal title</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <form method="POST" action="addnew.php"> <div class="row"> <div class="col-md-2"> <label class="control-label" style="position:relative; top:7px;">Firstname:</label> </div> <div class="col-md-10"> <input type="text" class="form-control" name="firstname"> </div> </div> <div style="height:10px;"></div> <div class="row"> <div class="col-md-2"> <label class="control-label" style="position:relative; top:7px;">Lastname:</label> </div> <div class="col-md-10"> <input type="text" class="form-control" name="lastname"> </div> </div> <div style="height:10px;"></div> <div class="row"> <div class="col-md-2"> <label class="control-label" style="position:relative; top:7px;">Address:</label> </div> <div class="col-md-10"> <input type="text" class="form-control" name="address"> </div> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button> <button type="submit" class="btn btn-primary">Save changes</button> </form> </div> </div> </div> </div>addnew.php
//addnew.php <?php include('conn.php'); session_start(); $firstname=$_POST['firstname']; $lastname=$_POST['lastname']; $address=$_POST['address']; $conn->query("insert into members (firstname, lastname, address) values ('$firstname', '$lastname', '$address')"); $_SESSION['msg']="Member Added Succesfully"; header('location:index.php'); ?>modal.php
//modal.php <!-- Delete --> <div class="modal fade" id="deleteModal<?php echo $row['id']; ?>" tabindex="-1" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel">Delete Member</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <?php $del=mysqli_query($conn,"select * from members where id='".$row['id']."'"); $drow=mysqli_fetch_array($del); ?> <div class="container-fluid"> <h5><center>Firstname: <strong><?php echo $drow['firstname']; ?></strong></center></h5> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button> <a href="delete.php?id=<?php echo $row['id']; ?>" class="btn btn-danger"> Delete</a> </div> </div> </div> </div> <!-- /.modal --> <!-- Edit --> <div class="modal fade" id="editModal<?php echo $row['id']; ?>" tabindex="-1" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel">Update Member</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <?php $edit=$conn->query("select * from members where id='".$row['id']."'"); $erow=$edit->fetch_array(); ?> <div class="container-fluid"> <form method="POST" action="edit.php?id=<?php echo $erow['id']; ?>"> <div class="row"> <div class="col-md-2"> <label style="position:relative; top:7px;">Firstname:</label> </div> <div class="col-md-10"> <input type="text" name="firstname" class="form-control" value="<?php echo $erow['firstname']; ?>"> </div> </div> <div style="height:10px;"></div> <div class="row"> <div class="col-md-2"> <label style="position:relative; top:7px;">Lastname:</label> </div> <div class="col-md-10"> <input type="text" name="lastname" class="form-control" value="<?php echo $erow['lastname']; ?>"> </div> </div> <div style="height:10px;"></div> <div class="row"> <div class="col-md-2"> <label style="position:relative; top:7px;">Address:</label> </div> <div class="col-md-10"> <input type="text" name="address" class="form-control" value="<?php echo $erow['address']; ?>"> </div> </div> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button> <button type="submit" class="btn btn-warning"> Save</button> </div> </form> </div> </div> </div> <!-- /.modal -->edit.php
//edit.php <?php include('conn.php'); session_start(); $id=$_GET['id']; $firstname=$_POST['firstname']; $lastname=$_POST['lastname']; $address=$_POST['address']; $conn->query("update members set firstname='$firstname', lastname='$lastname', address='$address' where id='$id'"); $_SESSION['msg']="Member Updated Succesfully"; header('location:index.php'); ?>delete.php
//delete.php <?php include('conn.php'); session_start(); $id=$_GET['id']; $conn->query("delete from members where id='$id'"); $_SESSION['msg']="Member Deleted Succesfully"; header('location:index.php'); ?>