Đọc Dữ Liệu Của Bảng

Trong bài học này chúng ta sẽ tìm hiểu cách lấy về dữ liệu từ một bảng cho trước.

Chuẩn Bị

Trên cơ sở dữ liệu learn_php_mysql_db chúng ta sẽ cần tạo một bảng có tên là posts với hai cột (hay trường) là titlecontent. Kết nối tới database server MySQL và chọn database để làm việc:

USE learn_php_mysql_db;

Sau đó chạy câu lệnh SQL sau để tạo mới một bảng:

CREATE TABLE `posts` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tittle` varchar(255) DEFAULT NULL,
  `content` text DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Sau đó chúng ta thêm vào một số dữ liệu mẫu như sau:

INSERT INTO posts(`tittle`, `content`) VALUES("Bài viết đầu tiên của tôi", "Hello world!");

Ngoài ra bạn có thể sử dụng PhpMyAdmin để chèn thêm một số dữ liệu thêm nếu muốn.

Kiểm tra lại dữ liệu của bảng posts:

SELECT * FROM posts;

Kết quả hiển thị:

+----+-------------------------------------+--------------+
| id | tittle                              | content      |
+----+-------------------------------------+--------------+
|  1 | Bài viết đầu tiên của tôi           | Hello world! |
+----+-------------------------------------+--------------+
1 row in set (0.00 sec)

Lấy Dữ Liệu Của Bảng Sử Dụng MySQLi

Sau khi hoàn tất các bước tạo bảng, thêm dữ liệu và kiểm tra lại như ở trên thì bây giờ chúng ta sẽ tìm hiểu cách đọc dữ liệu của bảng sử dụng MySQLi extension.

Tạo một tập tin posts.php và thêm vào nội dung sau:

<?php
include('connect_db.php');

$sql="SELECT * FROM posts ORDER BY id";

$result = mysqli_query($connection, $sql)

if ($result) {
    // Hàm `mysql_fetch_row()` sẽ chỉ fetch dữ liệu một record mỗi lần được gọi
    // do đó cần sử dụng vòng lặp While để lặp qua toàn bộ dữ liệu trên bảng posts
    while ($row=mysqli_fetch_row($result)) {
        printf ("Id: %s, Title: %s, Content: %s<br>",$row[0],$row[1], $row[2]);
    }

    // Máy tính sẽ lưu kết quả từ việc truy vấn dữ liệu bảng
    // Do đó chúng ta nên giải phóng bộ nhớ sau khi hoàn tất đọc dữ liệu
    mysqli_free_result($result);
}

Ở đoạn code trên chúng ta sử dụng hàm mysqli_query() của PHP để thực hiện việc gửi câu truy vấn SQL query tới máy chủ cơ sở dữ liệu MySQL. Hàm này thường sẽ trả về một đối tượng mysqli_result được định nghĩa bởi PHP hoặc true trong một số trường hợp.

Tiếp đó chúng ta sử dụng hàm mysqli_fetch_row() trên kết quả trả về. Hàm này thực hiện việc lấy ra (fetch ra) dữ liệu trả về từ database được lưu trong object $result mỗi lần được gọi. Lưu ý rằng mysqli_fetch_row() sẽ fetch theo thứ tự lần lượt từng record trên bảng và do đó chúng ta sẽ sử dụng vòng lặp while để lặp qua từng record cho tới khi không còn giá trị nào nữa. Giá trị trả về của hàm này sẽ là một mảng array được đánh số thứ tự từ 0 tương ứng với tên cột đầu tiên của bảng:

printf ("Id: %s, Title: %s, Content: %s<br>",$row[0],$row[1], $row[2]);

Bây giờ nếu bạn chạy tập tin posts.php trên bạn sẽ thấy kết quản hiển thị lần lượt các thông tin dữ liệu của record trên bảng.

Cuối cùng hàm mysqli_free_result() sẽ giúp giải phóng bộ nhớ sử dụng bởi PHP để lưu dữ liệu trong object $result.

PHP MySQL Lập Trình Web
Thêm Bình Luận: