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
CREATE TABLE `members` (
`id` int(11) NOT NULL,
`firstname` varchar(30) NOT NULL,
`lastname` varchar(30) NOT NULL,
`address` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `members` (`id`, `firstname`, `lastname`, `address`) VALUES
(1, 'Cairo', 'Ednalan', 'Olongapo City'),
(2, 'clydey', 'Ednalan', 'Olongapo City'),
(3, 'Airi ', 'Satou', 'Tokyo'),
(4, 'Ashton ', 'Cox', 'San Francisco');
ALTER TABLE `members`
ADD PRIMARY KEY (`id`);
ALTER TABLE `members`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | //index.php <!DOCTYPE html> <html> <head> <meta charset= "utf-8" > <title>PHP PDO CRUD (Create Read Update and Delete ) with Bootstrap 5 Modall</title> <link rel= "stylesheet" type= "text/css" href= "https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" > </head> <body> <div class = "container" > <h1 class = "page-header text-center" >PHP PDO CRUD (Create Read Update and Delete ) with Bootstrap 5 Modal</h1> <div class = "row" > <div class = "col-12" > <button type= "button" class = "btn btn-primary" data-bs-toggle= "modal" data-bs-target= "#addnew" > Add New </button> <?php session_start(); if (isset( $_SESSION [ 'message' ])){ ?> <div class = "alert alert-info text-center" style= "margin-top:20px;" > <?php echo $_SESSION [ 'message' ]; ?> </div> <?php unset( $_SESSION [ 'message' ]); } ?> <table class = "table table-bordered table-striped" style= "margin-top:20px;" > <thead> <th>ID</th> <th>Firstname</th> <th>Lastname</th> <th>Address</th> <th>Action</th> </thead> <tbody> <?php include_once ( 'connection.php' ); $database = new Connection(); $db = $database ->open(); try { $sql = 'SELECT * FROM members' ; foreach ( $db ->query( $sql ) as $row ) { ?> <tr> <td><?php echo $row [ 'id' ]; ?></td> <td><?php echo $row [ 'firstname' ]; ?></td> <td><?php echo $row [ 'lastname' ]; ?></td> <td><?php echo $row [ 'address' ]; ?></td> <td> <a href= "#edit_<?php echo $row['id']; ?>" class = "btn btn-success btn-sm" data-bs-toggle= "modal" > Edit</a> <a href= "#delete_<?php echo $row['id']; ?>" class = "btn btn-danger btn-sm" data-bs-toggle= "modal" > Delete </a> </td> <?php include ( 'edit_delete_modal.php' ); ?> </tr> <?php } } catch (PDOException $e ){ echo "There is some problem in connection: " . $e ->getMessage(); } //close connection $database ->close(); ?> </tbody> </table> </div> </div> </div> <?php include ( 'add_modal.php' ); ?> </body> </html> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | //connection.php <?php Class Connection{ private $server = "mysql:host=localhost;dbname=devprojectdb" ; private $username = "root" ; private $password = "" ; private $options = array (PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,); protected $conn ; public function open(){ try { $this ->conn = new PDO( $this ->server, $this ->username, $this ->password, $this ->options); return $this ->conn; } catch (PDOException $e ){ echo "There is some problem in connection: " . $e ->getMessage(); } } public function close(){ $this ->conn = null; } } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | //add_modal.php <!-- Add New --> <div class = "modal fade" id= "addnew" tabindex= "-1" aria-labelledby= "ModalLabel" aria-hidden= "true" > <div class = "modal-dialog" > <div class = "modal-content" > <div class = "modal-header" > <h5 class = "modal-title" id= "ModalLabel" >Add New</h5> <button type= "button" class = "btn-close" data-bs-dismiss= "modal" aria-label= "Close" ></button> </div> <div class = "modal-body" > <form method= "POST" action= "add.php" > <div class = "mb-3 row" > <label class = "col-sm-2 col-form-label" >Firstname</label> <div class = "col-sm-10" > <input type= "text" class = "form-control" name= "firstname" > </div> </div> <div class = "mb-3 row" > <label class = "col-sm-2 col-form-label" >Lastname</label> <div class = "col-sm-10" > <input type= "text" class = "form-control" name= "lastname" > </div> </div> <div class = "mb-3 row" > <label class = "col-sm-2 col-form-label" >Address</label> <div class = "col-sm-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" name= "add" class = "btn btn-primary" ><span class = "glyphicon glyphicon-floppy-disk" ></span> Save</a> </form> </div> </div> </div> </div> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | //edit_delete_modal.php <!-- Edit --> <div class = "modal fade" id= "edit_<?php echo $row['id']; ?>" tabindex= "-1" aria-labelledby= "ModalLabel" aria-hidden= "true" > <div class = "modal-dialog" > <div class = "modal-content" > <div class = "modal-header" > <h5 class = "modal-title" id= "ModalLabel" >Edit Membe</h5> <button type= "button" class = "btn-close" data-bs-dismiss= "modal" aria-label= "Close" ></button> </div> <div class = "modal-body" > <form method= "POST" action= "edit.php?id=<?php echo $row['id']; ?>" > <div class = "mb-3 row" > <label class = "col-sm-2 col-form-label" >Firstname</label> <div class = "col-sm-10" > <input type= "text" class = "form-control" name= "firstname" value= "<?php echo $row['firstname']; ?>" > </div> </div> <div class = "mb-3 row" > <label class = "col-sm-2 col-form-label" >Lastname</label> <div class = "col-sm-10" > <input type= "text" class = "form-control" name= "lastname" value= "<?php echo $row['lastname']; ?>" > </div> </div> <div class = "mb-3 row" > <label class = "col-sm-2 col-form-label" >Address</label> <div class = "col-sm-10" > <input type= "text" class = "form-control" name= "address" value= "<?php echo $row['address']; ?>" > </div> </div> </div> <div class = "modal-footer" > <button type= "button" class = "btn btn-secondary" data-bs-dismiss= "modal" >Close</button> <button type= "submit" name= "edit" class = "btn btn-primary" > Update</a> </form> </div> </div> </div> </div> <!-- Delete --> <div class = "modal fade" id= "delete_<?php echo $row['id']; ?>" tabindex= "-1" aria-labelledby= "ModalLabel" aria-hidden= "true" > <div class = "modal-dialog" > <div class = "modal-content" > <div class = "modal-header" > <h5 class = "modal-title" id= "ModalLabel" > Delete Membe</h5> <button type= "button" class = "btn-close" data-bs-dismiss= "modal" aria-label= "Close" ></button> </div> <div class = "modal-body" > <p class = "text-center" >Are you sure you want to Delete </p> <h2 class = "text-center" ><?php echo $row [ 'firstname' ]. ' ' . $row [ 'lastname' ]; ?></h2> </div> <div class = "modal-footer" > <button type= "button" class = "btn btn-secondary" data-bs-dismiss= "modal" >Close</button> <a href= "delete.php?id=<?php echo $row['id']; ?>" class = "btn btn-danger" > Yes</a> </div> </div> </div> </div> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | //add.php <?php session_start(); include_once ( 'connection.php' ); if (isset( $_POST [ 'add' ])){ $database = new Connection(); $db = $database ->open(); try { //use prepared statement to prevent sql injection $stmt = $db ->prepare( "INSERT INTO members (firstname, lastname, address) VALUES (:firstname, :lastname, :address)" ); //if-else statement in executing our prepared statement $_SESSION [ 'message' ] = ( $stmt ->execute( array ( ':firstname' => $_POST [ 'firstname' ] , ':lastname' => $_POST [ 'lastname' ] , ':address' => $_POST [ 'address' ])) ) ? 'Member added successfully' : 'Something went wrong. Cannot add member' ; } catch (PDOException $e ){ $_SESSION [ 'message' ] = $e ->getMessage(); } //close connection $database ->close(); } else { $_SESSION [ 'message' ] = 'Fill up add form first' ; } header( 'location: index.php' ); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | //edit.php <?php session_start(); include_once ( 'connection.php' ); if (isset( $_POST [ 'edit' ])){ $database = new Connection(); $db = $database ->open(); try { $id = $_GET [ 'id' ]; $firstname = $_POST [ 'firstname' ]; $lastname = $_POST [ 'lastname' ]; $address = $_POST [ 'address' ]; $sql = "UPDATE members SET firstname = '$firstname', lastname = '$lastname', address = '$address' WHERE id = '$id'" ; //if-else statement in executing our query $_SESSION [ 'message' ] = ( $db -> exec ( $sql ) ) ? 'Member updated successfully' : 'Something went wrong. Cannot update member' ; } catch (PDOException $e ){ $_SESSION [ 'message' ] = $e ->getMessage(); } //close connection $database ->close(); } else { $_SESSION [ 'message' ] = 'Fill up edit form first' ; } header( 'location: index.php' ); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | //delete.php <?php session_start(); include_once ( 'connection.php' ); if (isset( $_GET [ 'id' ])){ $database = new Connection(); $db = $database ->open(); try { $sql = "DELETE FROM members WHERE id = '" . $_GET ['id ']."' "; //if-else statement in executing our query $_SESSION [ 'message' ] = ( $db -> exec ( $sql ) ) ? 'Member deleted successfully' : 'Something went wrong. Cannot delete member' ; } catch (PDOException $e ){ $_SESSION [ 'message' ] = $e ->getMessage(); } //close connection $database ->close(); } else { $_SESSION [ 'message' ] = 'Select member to delete first' ; } header( 'location: index.php' ); ?> |