CRUD with Codeigniter 3 in PHP

 <?php

defined("BASEPATH") or exit("No direct script access allowed");

class User extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
    }

    public function index()
    {
        $this->load->model("User_model");
        $data["users"] = $this->User_model->allRecords();
        $this->load->view("list", $data);
    }

    public function create()
    {
        $this->load->model("User_model");
        $this->form_validation->set_rules("name", "Name", "required");
        $this->form_validation->set_rules("email", "Email", "required|valid_email");

        if ($this->form_validation->run() == false) {
            $this->load->view("create");
        } else {
            //Save record to database
            $formArray = array();
            $formArray["name"] = $this->input->post("name");
            $formArray["email"] = $this->input->post("email");
            $formArray["created_at"] = date("Y-m-d");
            $this->User_model->create($formArray);
            $this->session->set_flashdata("success", "Record added successfully");
            redirect(base_url() . "User/index");
        }
    }

    public function edit($userId)
    {
        $this->load->model("User_model");
        $data["user"] = $this->User_model->getUser($userId);

        $this->form_validation->set_rules("name", "Name", "required");
        $this->form_validation->set_rules("email", "Email", "required|valid_email");

        if ($this->form_validation->run() == false) {
            $this->load->view("edit", $data);
        } else {
            //UPDATE user record
            $formArray = array();
            $formArray["name"] = $this->input->post("name");
            $formArray["email"] = $this->input->post("email");
            $this->User_model->updateUser($userId, $formArray);
            $this->session->set_flashdata("success", "Record Updated Successfully");
            redirect(base_url() . "User/index");
        }
    }

    public function delete($userId)
    {
        $this->load->model("User_model");
        $this->User_model->getUser($userId);
        if (empty(userId)) {
            $this->session->set_flashdata("failure", "Record Not found in database");
            redirect(base_url() . "User/index");
        }
        $this->User_model->deleteUser($userId);
        $this->session->set_flashdata("success", "Record deleted Successfully");
        redirect(base_url() . "User/index");
    }
}





MODEL CLASS FILE
<?php
defined("BASEPATH") or exit("No direct script access allowed");

class User_model extends CI_Model
{
    public function create($formArray)
    {
        $this->db->insert("users", $formArray); //INSERT INTO users(name,email) VALUES(?,?);
    }

    public function allRecords()
    {
        return $this->db->get("users")->result_array(); //SELECT * FROM users;
    }

    public function getUser($userId)
    {
        $this->db->where("user_id", $userId);
        return $this->db->get("users")->row_array(); //SELECT * FROM users WHERE user_id = ?
    }

    //UPDATE the record from Database
    public function updateUser($userId, $formArray)
    {
        $this->db->where("user_id", $userId);
        $this->db->update("users", $formArray); //UPDATE users SET name = ?, email = ? WHERE user_id = ?
    }

    //DELETE the record from Database
    public function deleteUser($userId)
    {
        $this->db->where("user_id", $userId);
        $this->db->delete("users"); //DELETE FROM users WHERE user_id = ?
    }
}





CREATE USER FILE
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="<?php echo base_url() . "assets/css/bootstrap.min"; ?>">
<title>Crud Application - Create User</title>

<body>
    <div class="navbar navbar-dark bg-dark">
        <div class="container">
            <a href="#" class="navbar-brand">CRUD APPLICATION</a>
        </div>
    </div>
    <div class="container" style="padding-top: 10px;">
        <h3>Create User</h3>
        <hr>
        <form name="createUser" action="<?php echo base_url() . "User/create"; ?>" method="post">
            <div class="row">
                <div class="col-md-6">
                    <div class="form-group">
                        <label>Name</label>
                        <input type="text" name="name" value="<?php echo set_value("name"); ?>" class="form-control">
                        <?php echo form_error("name"); ?>
                    </div>
                    <div class="form-group">
                        <label>Email</label>
                        <input type="text" name="email" value="<?php echo set_value("email"); ?>" class="form-control">
                        <?php echo form_error("email"); ?>
                    </div>
                    <div class="form-group" style="padding-top: 20px;">
                        <button class="btn btn-primary">Create</button>
                        <a href="<?php echo base_url() . "User/index"; ?>" class="btn-secondary btn">Cancel</a>
                    </div>
                </div>
            </div>
        </form>
    </div>

</body>

</html>






UPDATE USER FILE
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="<?php echo base_url() . "assets/css/bootstrap.min"; ?>">
<title>Crud Application - Update User</title>

<body>
    <div class="navbar navbar-dark bg-dark">
        <div class="container">
            <a href="#" class="navbar-brand">CRUD APPLICATION</a>
        </div>
    </div>
    <div class="container" style="padding-top: 10px;">
        <h3>Update User</h3>
        <hr>
        <form method="post" name="createUser" action="<?php echo base_url() . "User/edit/" . $user["user_id"]; ?>">
            <div class="row">
                <div class="col-md-6">
                    <div class="form-group">
                        <label>Name</label>
                        <input type="text" name="name" value="<?php echo set_value("name", $user["name"]); ?>" class="form-control">
                        <?php echo form_error("name");
                        ?>
                    </div>
                    <div class="form-group">
                        <label>Email</label>
                        <input type="text" name="email" value="<?php echo set_value("email", $user["email"]); ?>" class="form-control">
                        <?php echo form_error("email");
                        ?>
                    </div>
                    <div class="form-group" style="padding-top: 20px;">
                        <button class="btn btn-primary">Update</button>
                        <a href="<?php echo base_url() . "User/index"; ?>" class="btn-secondary btn">Cancel</a>
                    </div>
                </div>
            </div>
        </form>
    </div>

</body>

</html>






VIEW USER FILE
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="<?php echo base_url() . "assets/css/bootstrap.min"; ?>">
<title>Crud Application - View Users</title>

<body>
    <div class="navbar navbar-dark bg-dark">
        <div class="container">
            <a href="#" class="navbar-brand">CRUD APPLICATION</a>
        </div>
    </div>
    <div class="container" style="padding-top: 10px;">
        <div class="row">
            <div class="col-md-12">
                <?php
                $success = $this->session->userdata("success");
                if ($success != "") {
                ?>
                    <div class="alert alert-success"><?php echo $success; ?></div>
                <?php
                }
                ?>

                <?php
                $failure = $this->session->userdata("failure");
                if ($failure != "") {
                ?>
                    <div class="alert alert-failure"><?php echo $failure; ?></div>
                <?php
                }
                ?>
            </div>
        </div>
        <div class="row">
            <div class="col-md-18">
                <div class="row">
                    <div class="col-6">
                        <h3>View Users</h3>
                    </div>
                    <div class="col-6 text-right">
                        <a href="<?php echo base_url() . "User/create"; ?>" class="btn btn-primary">Create</a>
                    </div>
                </div>
                <hr>
            </div>
        </div>
        <div class="row">
            <div class="col-md-8">
                <table class="table table-striped">
                    <tr>
                        <th>ID</th>
                        <th>Name</th>
                        <th>Email</th>
                        <th width="60">Edit</th>
                        <th width="100">Delete</th>
                    </tr>

                    <?php if (!empty($users)) {
                        foreach ($users as $userdata) { ?>
                            <tr>
                                <td><?php echo $userdata["user_id"]; ?></td>
                                <td><?php echo $userdata["name"]; ?></td>
                                <td><?php echo $userdata["email"]; ?></td>
                                <td>
                                    <a href="<?php echo base_url() . "User/edit/" . $userdata["user_id"]; ?>" class="btn btn-primary">Edit</a>
                                </td>
                                <td>
                                    <a href="<?php echo base_url() . "User/delete/" . $userdata["user_id"]; ?>" class="btn btn-danger">Delete</a>
                                </td>
                            </tr>
                        <?php }
                    } else { ?>
                        <tr>
                            <td colspan="5">Records not found</td>
                        </tr>
                    <?php } ?>
                </table>
            </div>
        </div>
    </div>

</body>

</html>







Comments