Skip to main content

การใช้งาน CodeIgniter CRUD With Database

จากบทความที่แล้ว เราได้แนะนำ การติดตั้งและการใช้งาน CodeIgniter เบื้องต้น กันไปแล้ว ในบทความนี้ จะเป็นการแนะนำการ ใช้งาน CodeIgniter โดยจะ มีการทำงาน ร่วมกับ ฐานข้อมูล MySQL ในตัวอย่างจะเป็นการ ตั้งค่าการเชื่อมต่อฐานข้อมูล และ ตัวอย่างการ เขียนโปรแกรม เพิ่ม แก้ไข และ ลบ ข้อมูล ด้วย CodeIgniter Framework

ในตัวอย่างจะตั้งชื่อ Project ของเรา ชื่อว่า MyApp

image-21

การตั้งค่าการเชื่อมต่อฐานข้อมูล

เราสามารถตั้งค่าการเชื่อมต่อฐานข้อมูลได้ที่ไฟล์  MyApp/application/config/database.php

image-31

 

 

การตั้งค่า Base Site URL

เราสามารถตั้งค่า Url ของ Project ของเรา เพื่อให้สามารถเรียกใช้ใด้ทุกที่ใน Project สามารถตั้งค่าได้ที่ไฟล์ MyApp/application/config/config.php

image-41

ในตัวอย่างเราตั้งเป็น http://localhost/MyApp  เนื่องจากระบบทำงานบนโปรแกรมจำลอง Web Server แต่หากเราจะนำระบบขึ้นไปไว้ใน Web Server หรือ hosting ต้องระบุ เป็น เลข Ip หรือ Domain ของ เครื่อง Server ครับ

สร้างฐานข้อมูล

ในตัวอย่างจะสร้างฐานข้อมูล ชื่อว่า Basic

ตัวอย่างเป็น ฐานข้อมูลอย่างง่าย โดยจะมีตาราง customer เก็บข้อมูล ชื่อ และ นามสกุลของ ลูกค้า

CREATE TABLE `customer` (
  `id` int(11) NOT NULL,
  `first_name` varchar(255) NOT NULL,
  `last_name` varchar(255) NOT NULL,
  `phone` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `customer`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `customer`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;

การสร้าง Controller Customer

สร้างไฟล์ Customer.php ไว้ที่  MyApp/application/controller/Customer.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Customer extends CI_Controller {
	
	function __construct() { 
	
         parent::__construct(); 
	 
         //เรียกใช้งาน Customer_Model	 
	 $this->load->model('Customer_Model');

	 //เรียกใช้งาน Class helper	 
         $this->load->helper('url'); 
		 
	  $this->load->helper('form');

	 //เรียกใช้งาน Class database	 
         $this->load->database(); 
    } 
        //แสดงข้อมูล Customer ทั้งหมด     
	public function index()
	{
		$query = $this->db->get("customer"); 
		 
                $data['result'] = $query->result(); 
		
		$this->load->view('header');
		
		$this->load->view('customer/customer_data',$data);
		
		$this->load->view('footer');
	}

	public function add_customer_form(){
		
		$this->load->view('header');
		
		$this->load->view('customer/customer_add_form');
		
		$this->load->view('footer');
	}
	
	public function save_customer(){
		
	$data = array( 
            'first_name' => $this->input->post('first_name'), 
            'last_name' => $this->input->post('last_name') 
         ); 
			
         $this->Customer_Model->insert($data); 
		
		 redirect('customer/index');
	}
	
	public function edit_customer_form(){
		
		 $id = $this->uri->segment('3'); 
		 
		 $data['result'] = $this->Customer_Model->selectOne($id);
		 
		 $this->load->view('header');
		 
         $this->load->view('customer/customer_edit_form',$data);
		 
		 $this->load->view('footer');
		
	}
	
	public function save_edit_customer(){
		
		 $data = array( 
            'first_name' => $this->input->post('first_name'), 
            'last_name' => $this->input->post('last_name'),
         ); 
		 
		 $id = $this->input->post('id');
			
         $this->Customer_Model->update($data,$id); 
		
		 redirect('customer/index');

	}
	
	public function delete_customer(){
		
		 $id = $this->uri->segment('3'); 
		 
		 $this->Customer_Model->delete($id); 
		 
		 redirect('customer/index');
	}
	
	
}

การสร้าง Customer_Model

สร้างไฟล์ Customer_Model.php ไว้ที่  MyApp/application/models/Customer_Model.php

<?php 
   class Customer_Model extends CI_Model {
	
      function __construct() { 
         parent::__construct(); 
      } 
	  
	  public function selectOne($id){
		  
		 $query = $this->db->get_where("customer",array("id"=>$id));
		 
         $data = $query->result(); 
		 
		 return $data;
	  }
   
      public function insert($data) { 
         if ($this->db->insert("customer", $data)) { 
            return true; 
         } 
      } 
   
      public function delete($id) { 
         if ($this->db->delete("customer", "id = ".$id)) { 
            return true; 
         } 
      } 
   
      public function update($data,$id) { 
         $this->db->set($data); 
         $this->db->where("id", $id); 
         $this->db->update("customer", $data); 
      } 
   } 
?>

การสร้าง Layout  Header และ Footer

สร้างไฟล์ header.php  ไว้ที่    MyApp/application/views/header.php

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>Customer</title>


	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" >

</head>

<body>
    <div class="container">

สร้างไฟล์  footer.php  ไว้ที่    MyApp/application/views/footer.php

        <hr>

        <!-- Footer -->
        <footer>
            <div class="row">
                <div class="col-lg-12">
                    <p>Your Website <?php echo date("Y")?></p>
                </div>
            </div>
            <!-- /.row -->
        </footer>

    </div>
    <!-- /.container -->

</body>

</html>

สร้าง Folder customer ไว้ที่ MyApp/application/views/customer

สร้างไฟล์  customer_data.php ไว้ที่ MyApp/application/views/customer/customer_data.php

แสดงข้อมูล รายชื่อ ทั้งหมด

<h3>Title</h3>

<a href="<?php echo base_url()?>index.php/customer/add_customer_form" class="btn btn-info">ADD</a>


<table class="table table-bordered" style="margin-top:10px">
	<tr class="active">
		<th>First Name</th>
		<th>Last Name</th>
		<th width="10%">Edit</th>
		<th width="10%">Delete</th>
	</tr>
	<?php
		foreach($result as $r){
			echo "<tr>";
				echo "<td>".$r->first_name."</td>";
				
				echo "<td>".$r->last_name."</td>";
				
				echo "<td><a href='".base_url()."index.php/customer/edit_customer_form/".$r->id."' class='btn btn-warning'>Edit</a></td>";
				
				echo "<td><a href='".base_url()."index.php/customer/delete_customer/".$r->id."' onclick='return confirm(\"Confirm Delete Item\")' class='btn btn-danger'>Delete</a></td>";
				
			echo "</tr>";
		}
	?>
</table>

สร้างไฟล์  customer_add_form.php ไว้ที่ MyApp/application/views/customer/customer_add_form.php

Form สำหรับเพิ่มข้อมูล

		
		<h3>Add Data</h3>
         
		 <?php 
            echo form_open('customer/save_customer');
			
            echo form_label('First Name'); 
            echo form_input(array('class'=>'form-control','name'=>'first_name')); 
            echo "<br/>"; 
			
            echo form_label('Last Name'); 
            echo form_input(array('class'=>'form-control','name'=>'last_name')); 
            echo "<br/>"; 
			
            echo form_submit(array('id'=>'submit','value'=>'Add','class'=>'btn btn-success')); 
			
			echo anchor(base_url().'index.php/customer', 'Back',array('class'=>'btn btn-default'));
			
            echo form_close(); 
         ?>

สร้างไฟล์  customer_edit_form.php ไว้ที่ MyApp/application/views/customer/customer_edit_form.php

Form สำหรับแก้ไขข้อมูล

		<h3>Edit Data</h3>
         
		 <?php 
		 
            echo form_open('customer/save_edit_customer');
			
			echo form_hidden('id',$result[0]->id); 
				
            echo form_label('First Name'); 
            echo form_input(array('class'=>'form-control','name'=>'first_name','value'=>$result[0]->first_name)); 
            echo "<br/>"; 
			
            echo form_label('Last Name'); 
            echo form_input(array('class'=>'form-control','name'=>'last_name','value'=>$result[0]->last_name)); 
            echo "<br/>"; 
			
            echo form_submit(array('id'=>'submit','value'=>'Save Edit','class'=>'btn btn-warning')); 
			
			echo anchor(base_url().'index.php/customer', 'Back',array('class'=>'btn btn-default'));

            echo form_close(); 
         ?>

ตัวอย่างการแสดงผล

image-51

Download SourceCode


Deprecated: Function create_function() is deprecated in /home/service1/domains/monkeywebstudio.com/public_html/wp-content/plugins/simple-lightbox/controller.php on line 1642