Kết nối database và hiển thị dữ liệu trong CodeIgniter 3x

Bài này giúp các bạn tự xây dựng 1 controllers trong admin và kết nối với database, code hiển thị dữ liệu trong CodeIgniter 3x
  • 15:35 08/10/2016
  • Kỳ Nhân
  • 0 Bình luận
  • 1288

Để kết nối database và hiển thị dữ liệu trong CodeIgniter. Các bạn cần phải load thư viện có sẵn trong CodeIgniter là database với đoạn code.

Vào application/core/MY_Controller.php sửa function __construct thành

function __construct() {
    parent::__construct();
    $this->load->helper('url');
    $this->load->library('session');
    $this->load->database();
}

Dòng code trên giúp các bạn load sẵn thư viện session và kết nối database.

Vào phpmyadmin tạo database tên là ci rồi chọn database ci, tạo thêm table tên là groups cùng với dữ liệu với dòng code

CREATE TABLE IF NOT EXISTS `groups` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` text COLLATE utf8_unicode_ci NOT NULL,
  `picture` text COLLATE utf8_unicode_ci NOT NULL,
  `hide` int(11) NOT NULL,
  `stt` int(11) NOT NULL,
  `create_at` int(11) NOT NULL,
  `update_at` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=4 ;

INSERT INTO `groups` (`id`, `title`, `picture`, `hide`, `stt`, `create_at`, `update_at`) VALUES
(1, 'Users', '', 0, 0, 1467636982, 0),
(2, 'Administrators', '', 1, 0, 1467636982, 0),
(3, 'Moderators', '', 0, 0, 1467637060, 0);

Sau khi tạo xong database vào application/config/database.php cấu hình kết nối database bằng cách điền các thông số cần thiết. Ví dụ như

$db['default'] = array(
    'dsn'    => '',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'ci',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

thường khi tạo trên localhost user mặc định là root và password là rỗng, phần databse điền ci vì đang kết nối database ci để làm.

Như vậy phần kết nối database cho CodeIgniter đã xong.

Giờ tạo controllers trong admin tên là Groups và view của group:

Vào application/controllers/admin tạo 1 file tên là Groups.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Groups extends Admin_Controller {
    function __construct() {
        parent::__construct();
    }
    public function index() {
        $this->data['model'] = $this->db->query("select * from groups order by id asc")->result();
        $this->render('admin/groups/list');
    }
}

Vào application/views/admin tạo folder tên là groups

Trong folder groups tạo file list.php với nội dung

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


<div class="container">
    <h1>Danh sách nhóm</h1>
    <div class="text-right"><a class="btn btn-success" href="<?=site_url('admin/groups/create'); ?>" title="Thêm">Thêm nhóm</a></div>
    <hr>
    <div class="table-responsive">
        <table class="table table-bordered table-hover table-list">
            <thead>
                <tr>
                    <th class="w50">#</th>
                    <th class="w50">STT</th>
                    <th>Hình Ảnh</th>
                    <th>Tên</th>
                    <th class="w100">Ẩn | Hiện</th>
                    <th class="w100">Hành động</th>
                </tr>
            </thead>
            
            <tbody>
                <?php foreach ($model as $i => $item) { ?>                    
                <tr>
                    <td class="w50"><?=$i+1?></td>
                    <td><input type="text" value="<?=$item->stt?>" class="stt w50"></td>
                    <td>
                    <?php if($item->picture!='') { ?>
                    <img src="<?=base_url()?>uploads/<?=$item->picture?>" height="80">
                    <?php } ?>
                    </td>
                    <td><?=$item->title?></td>
                    <td class="w100 a-hide">
                        <span class="glyphicon glyphicon-ok-circle iconfa-show hide1<?=$item->id?> <?php if($item->hide==0) echo 'hide'; ?>"></span>
                        <span class="glyphicon glyphicon-remove-circle iconfa-hide hide0<?=$item->id?> <?php if($item->hide==1) echo 'hide'; ?>"></span>
                    </td>
                    <td class="w100 act">
                        <a href="<?=site_url('admin/groups/edit/'.$item->id); ?>" ><span class="glyphicon glyphicon-pencil"></span></a>
                        <a class="delete-confirm" href="<?=site_url('admin/groups/delete/'.$item->id); ?>"><span class="glyphicon glyphicon-trash"></span></a>                                
                    </td>
                </tr>
                <?php } ?>
                
            </tbody>
        </table>
    </div>
</div>

Để table hiển thị đẹp tý ta chỉnh Css cho nó. Vào assets/admin/css/style.css thêm vào

.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th {
    vertical-align: middle;
    padding: 5px;
}
.iconfa-show{ 
    color:#419641;
    cursor:pointer;
    font-size:22px;
    position:relative;
    top:3px;
}
.iconfa-hide{
    color:#F00;
    cursor:pointer;
    font-size:22px;
    position:relative;
    top:3px;
}
.act a {
    font-size: 20px;
    position: relative;
    top: 3px;
    margin: 0 8px;
}
.w50{
    width:50px;
    text-align:center;
}

Giờ truy cập vào đường dẫn localhost/ci/admin/groups.html thấy hiển thị như hình dưới là Ok