Home » , » Hướng dẫn liên kết nhiều bảng trong codeignter 3

Hướng dẫn liên kết nhiều bảng trong codeignter 3

Đăng bởi: Code.Elite.Vn

Hôm nay khánh minh lại tiếp tục chia sẻ với các bạn cách làm thế nào đề liên kết nhiều bảng trong codeighiter 3(join multi table codeigniter 3) có đính kèm toàn bộ mã nguồn ở cuối bài cho các bạn ngại đọc trực tuyến nhé.

Đầu tiên chúng ta phải config autoload để cho ci nhận được cấu hình của nó.
$autoload['libraries'] = array('database'); //dòng 61 trong application/autoload.php
$autoload['helper'] = array('url');  //dòng 92 trong application/autoload.php

Tạo database như mong muốn
-- phpMyAdmin SQL Dump
-- version 4.5.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Jul 14, 2016 at 10:58 AM
-- Server version: 10.1.13-MariaDB
-- PHP Version: 5.5.35

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `login`
--

-- --------------------------------------------------------

--
-- Table structure for table `album`
--

CREATE TABLE `album` (
  `cat_id` int(2) NOT NULL,
  `album_id` int(2) NOT NULL,
  `album_title` varchar(30) NOT NULL,
  `album_details` longtext NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `album`
--

INSERT INTO `album` (`cat_id`, `album_id`, `album_title`, `album_details`) VALUES
(1, 1, 'tinh thoi xot xa', 'demo tinh thoi xot xa'),
(2, 2, 'kiem phoi pha', 'demo kiem phoi pha');

-- --------------------------------------------------------

--
-- Table structure for table `category`
--

CREATE TABLE `category` (
  `cat_id` int(2) NOT NULL,
  `cat_name` varchar(30) NOT NULL,
  `cat_title` varchar(30) NOT NULL,
  `date` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `category`
--

INSERT INTO `category` (`cat_id`, `cat_name`, `cat_title`, `date`) VALUES
(1, 'php', 'php', '2016-07-14'),
(2, 'css', 'css', '2016-07-14');

-- --------------------------------------------------------

--
-- Table structure for table `soundtrack`
--

CREATE TABLE `soundtrack` (
  `album_id` int(2) NOT NULL,
  `track_title` varchar(30) NOT NULL,
  `track_url` varchar(200) NOT NULL,
  `date` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `soundtrack`
--

INSERT INTO `soundtrack` (`album_id`, `track_title`, `track_url`, `date`) VALUES
(1, 'sountrac_1_tile', 'http://abc-soudtrach1-title', '2016-07-14'),
(2, 'sountrac_2_tile', 'http://abc-soudtrach1-title 2', '2016-07-14');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `album`
--
ALTER TABLE `album`
  ADD PRIMARY KEY (`album_id`);

--
-- Indexes for table `category`
--
ALTER TABLE `category`
  ADD UNIQUE KEY `cat_id` (`cat_id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `album`
--
ALTER TABLE `album`
  MODIFY `album_id` int(2) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
--
-- AUTO_INCREMENT for table `category`
--
ALTER TABLE `category`
  MODIFY `cat_id` int(2) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Cấu hình database application/database.php theo server của các bạn như ví dụ bên dưới
'hostname' => 'localhost',
 'username' => 'root',
 'password' => '',
 'database' => 'login',

Tạo Controller mặc định là application/controller/Welcome.php với mã nguồn bên dưới
load->model('admin_model');
 }
 public function index()
 {
  $demo=$this->admin_model->funcname(1);
  print_r($demo);
 }
}


Tạo Model mặc định là application/models/Admin_model.php với mã nguồn bên dưới

db->select('*');
            $this->db->from('Album a'); 
            $this->db->join('Category b', 'b.cat_id=a.cat_id', 'left');
            $this->db->join('Soundtrack c', 'c.album_id=a.album_id', 'left');
            $this->db->where('c.album_id',$id);
            $this->db->order_by('c.track_title','asc');         
            $query = $this->db->get();
            if($query->num_rows() != 0)
            {
             return $query->result_array(); 
            }
            else
            {
                return false;
            }
        }
}


Lời kết

Qua bài này chúng ta đã học được làm thế nào để join multi table trong codeighiter rồi đúng không nào, với ví dụ như thế này khánh minh mong rằng các bạn sẽ nắm vững và áp dụng vào dự án của mình thành công nhé.

Mã nguồn : Codeigniter 3
Mã nguồn :Nhấn Vào đây để tải về
Hướng dẫn:  Click here

Mật mã giải nén: secure here



0 comments:

Post a Comment