Trong bài trước chúng ta đã nắm được cách rewrite URL bằng routes. Bài viết hôm nay tôi sẽ hướng dẫn cho các bạn thao tác với database MySQL thông qua ví dụ về một website tin tức đơn giản.

Trước tiên ta cần cấu hình database trong file application/config/database.php.

Tạo model:

Trong database tạo bảng news(id, title, summary, text). Thêm vào một vài dòng dữ liệu demo.

Tạo file application/models/news_model.php với nội dung:

Tương tự như controller, mọi model class trong CodeIgniter đều extends CI_Model. Hàm __construct() là hàm khởi tạo, trong đó load database bằng dòng lệnh: $this->load->database().

Bây giờ tạo method để load tin tức với tham số đầu vào là id như sau: 

Trong trường hợp tham số id truyền vào rỗng thì hàm get_news() sẽ trả về mảng chứa toàn bộ tin tức. Ngược lại nó sẽ lấy ra tin tức có id tương ứng bằng câu lệnh

get_where(‘table_name’, array(field_name’ => arguments)

Viết controller:

Tạo controller trong application/controllers/news.php

Lưu ý ở đây có một chút khác biệt so với controller trong các bài trước. Ta khai báo thêm hàm khởi tạo __construct(), trong đó thêm vào câu lệnh $this->load->model(‘news_model’) để load model (đã tạo ra ở trên) thao tác với databse. Như vậy mặc định khi load controller thì ta đã kết nối DB. Hàm index() load toàn bộ tin tức, hàm view() load tin tức với tham số id truyền vào. Trong trường hợp mảng trả về rỗng controller sẽ direct đến 404.

Hiển thị tin tức:

Bây giờ là tạo view để hiển thị. Trong application/views/news tạo 2 file index.phpview.php với vài đoạn code như sau:

File index.php:

File view.php