php CRUD Operation ( 2 Layer Architecture)

in utopian-io •  7 years ago  (edited)

What Will I Learn?

In This Tutorial , we will learn the php CRUD Operation . First of All, We have to know What is CRUD .
CRUD means Create , Retrieve, Update and Delete.

  • You will learn from this Tutorial, How to Create, Update, delete a Person Information on database.
  • Also Learn How to search a Person Information retrieve from the database.
  • See the details information of a person.

Requirements

There are Some requirements to learn this tutorial in the given below :

  • basic php programming concepts.
  • Establish database connection.

Difficulty

There is no difficulty in this tutorial. It is easy to learn

  • Intermediate

Tutorial Contents

Actually, In This Tutorial, php CRUD Operation ( 2 layer Architecture ) that means php CRUD Operation Performs on App Layer and Service Layer .

10.PNG

In App Layer - Create, Delete, Update, Retrieve,Detail php files are included .

11.PNG

In Service Layer- data_access,person_service, .htaccess files are included.

12.PNG

Here See the person_db structure given below-

15.PNG

In Create php file , we can easily create a person Information and store on the database.

Let's see the example -

<?php include "../service/person_service.php"; ?>
<hr/>
<a href="retrieve.php">HOME</a>
<hr/>
<?php
    if($_SERVER['REQUEST_METHOD']=="POST"){
        $person['name']=$_POST['name'];
        $person['email']=$_POST['email'];
        
        if(addPerson($person)==true){
            echo "Record Added<hr/>";
            die();
        }
    }
?>
<fieldset>
    <legend>CREATE</legend>
    <form method="post">
        <table border="0" cellspacing="0" cellpadding="3">
            <tr>
                <td>NAME:</td>
                <td>
                    <input name="name" />
                </td>
            </tr>
            <tr>
                <td>EMAIL:</td>
                <td>
                    <input name="email" />
                </td>
            </tr> 
        </table>
        <hr/>
        <input type="submit" value="SAVE" />
    </form>
</fieldset>

After Running the program, we get the following results-

13.PNG

If We Click the Save Button , We can get the following results-
14.PNG

16.PNG

In Update php file , we can easily Update a person Information on the database.

Let's See the Example -

<?php include "../service/person_service.php"; ?>
<hr/>
<a href="retrieve.php">HOME</a>
<hr/>
<?php
    if($_SERVER['REQUEST_METHOD']=="POST"){
        $person['id']=$_POST['id'];
        $person['name']=$_POST['name'];
        $person['email']=$_POST['email'];
        
        if(editPerson($person)==true){
            echo "Record Updated<hr/>";
        }
    }
    
    $personId = $_REQUEST['id'];
    $person = getPersonById($personId);
?>
<fieldset>
    <legend>UPDATE</legend>
    <form method="post">
        <input type="hidden" name="id" value="<?= $person['id'] ?>" />
        <table border="0" cellspacing="0" cellpadding="3">
            <tr>
                <td>NAME:</td>
                <td>
                    <input name="name" value="<?= $person['name'] ?>" />
                </td>
            </tr>
            <tr>
                <td>EMAIL:</td>
                <td>
                    <input name="email" value="<?= $person['email'] ?>" />
                </td>
            </tr> 
        </table>
        <hr/>
        <input type="submit" value="SAVE" />
    </form>
</fieldset>

After running the program, We get the following results-
17.PNG

If We Click the Save Button , It Will be updated on the database-
18.PNG

19.PNG

In Delete php file , we can easily Delete a person Information from the database.

Let's See the Example -

<?php include "../service/person_service.php"; ?>
<?php
  $personId =$_GET['id'];
?>
<hr/>
<a href="retrieve.php">HOME</a>
<hr/>
<fieldset>
  <legend>DELETE</legend>
  <?php
      if(removePerson($personId)==true){
          echo "Record Deleted";
      }
  ?>
</fieldset>

After running the following program- We can delete Name : Bob Kent Information from the database :
20.PNG

There is no name Bob Kent on the database-
21.PNG

In Detail php file , we can easily get the details of a person Information from the database.

Let's See the Example -

<?php include "../service/person_service.php"; ?>
<?php
    $personId =$_GET['id'];
    $person = getPersonById($personId);
?>

<hr/>
<a href="retrieve.php">HOME</a>
<a href="update.php?id=<?= $person['id'] ?>">EDIT</a>
<a href="delete.php?id=<?= $person['id'] ?>">DELETE</a>
<hr/>
<fieldset>
    <legend>DETAIL</legend>
    <table border="0" cellspacing="0" cellpadding="3">
        <tr>
            <td>NAME:</td>
            <td><?= $person['name'] ?></td>
        </tr>
        <tr>
            <td>EMAIL:</td>
            <td><?= $person['email'] ?></td>
        </tr> 
    </table>
</fieldset>

After running the program, we get the following reults of the Name : mcplexer details from the database-

22.PNG

In Retrieve php file , we can easily get the person_db table Information from the database through the search.

Let's See the Example -

<?php include "../service/person_service.php"; ?>
<?php
    if ($_SERVER['REQUEST_METHOD'] == "POST") {
        $searchKey = $_POST['search'];
        $persons = getPersonsByName($searchKey);
    } else {
        $persons = getAllPersons();
    }
?>
<html>
    <head>
        <title></title>
    </head>
    <body>
        <hr/>
        <a href="create.php">NEW</a>
        <hr/>
        
        <fieldset>
            <legend>RETRIEVE</legend>
            
            <form method="post">                
                <input name="search"/>
                <input type="submit" value="SEARCH"/>                
            </form>

            <table border="1" cellspacing="0" cellpadding="5">
                <?php if (count($persons) == 0) { ?>
                    <tr>
                        <td>NO RECORD FOUND</td>
                    </tr>
                <?php } ?>

                <?php foreach ($persons as $person) { ?>
                    <tr>
                        <td><?= $person['name'] ?></td>
                        <td><a href="detail.php?id=<?= $person['id'] ?>">detail</a></td>
                        <td><a href="update.php?id=<?= $person['id'] ?>">edit</a></td>
                        <td><a href="delete.php?id=<?= $person['id'] ?>">delete</a></td>
                    </tr>
                <?php } ?>
            </table>
        </fieldset>
    </body>
</html>

After running the following program- we search specific person from the database and we can see the detail of the person , Also Update and Delete their Information.
23.PNG

In Service Layer , We see the following codes-

Database Connection Code :

<?php
    $host="127.0.0.1";
    $user="root";
    $pass="";
    $dbname="person_db";
    $port=3306;
   
    function executeSQL($sql){
        global $host, $user, $pass, $dbname, $port;
        
        $link=mysqli_connect($host, $user, $pass, $dbname, $port);
        $result = mysqli_query($link, $sql);
        mysqli_close($link);
        
        return $result;
    }
?>

Person Service code with person_db connection :

<?php include("data_access.php"); ?>
<?php
    function addPerson($person){
        $sql = "INSERT INTO person(id, name, email) VALUES(NULL, '$person[name]', '$person[email]')";
        $result = executeSQL($sql);
        return $result;
    }
    
    function editPerson($person){
        $sql = "UPDATE person SET name='$person[name]', email='$person[email]' WHERE id=$person[id]";
        $result = executeSQL($sql);
        return $result;
    }
    
    function removePerson($personId){
        $sql = "DELETE FROM person WHERE id=$personId";        
        $result = executeSQL($sql);
        return $result;
    }
    
    function getAllPersons(){
        $sql = "SELECT * FROM person";        
        $result = executeSQL($sql);
        
        $person = array();
        for($i=0; $row=mysqli_fetch_assoc($result); ++$i){
            $person[$i] = $row;
        }
        
        return $person;
    }
    
    function getPersonById($personId){
        $sql = "SELECT * FROM person WHERE id=$personId";        
        $result = executeSQL($sql);
        
        $person = mysqli_fetch_assoc($result);
        
        return $person;
    }
    
    function getPersonsByName($personName){
        $sql = "SELECT * FROM person WHERE name LIKE '%$personName%'";
        $result = executeSQL($sql);
        
        $person = array();
        for($i=0; $row=mysqli_fetch_assoc($result); ++$i){
            $person[$i] = $row;
        }
        
        return $person;
    }
?>

In The Last part , Index.php - we can run the whole program through this code :

<?php
    header("location: app/retrieve.php");    
?>



Posted on Utopian.io - Rewarding Open Source Contributors

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Hey @mcplexer I am @utopian-io. I have just upvoted you!

Achievements

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • This is your first accepted contribution here in Utopian. Welcome!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x