Hiển Thị Thông Tin Sinh Viên

Trong phần này, chúng ta sẽ làm việc với các hàm trong MySQLi để hiển thị thông tin các sinh viên mà chúng ta đã thêm vào ở các phần trước.

Đếm Tổng Số Sinh Viên

Trong thư mục dự án tạo file admin.php sử dụng đoạn code sau:

<html>
<head>
    <title>Trang admin</title>
    <meta charset="utf-8">
</head>
<body>
<h2>Trang admin</h2>
<?php
    require('connect_db.php');

    // query students table
    $sql = 'SELECT * FROM `students`';

    $result = mysqli_query($link, $sql);

    if(!$result) {
        die('Query error: [' . $db->error . ']');
    }

        echo mysqli_num_rows($result);
?>
</body>
</html>

Ở đoạn code trên trước tiên chúng load file connect_db.php sử dụng hàm require(). Sau khi load file này chúng ta sẽ có thể sử dụng biến $link (là connection handler) trong khi truy vấn hoặc cập nhật cơ sở dữ liệu.

Tiếp theo chúng ta sử dụng hàm mysql_query() với đối số truyền vào là câu lệnh SELECT để truy vấn các record có trên bảng students:

$sql = 'SELECT * FROM `students`';
$result = mysqli_query($link, $sql);

Cuối cùng nếu như kết quả trả về từ hàm mysql_query() khác với false chúng ta sẽ hiển thị số lượng các records có trong bảng students sử dụng hàm mysqli_num_rows.

if(!$result) {
    die('Query error: [' . $db->error . ']');
}

echo mysqli_num_rows($result);

Sau đó mở trang admin.php trên trình duyệt bạn sẽ thấy kết quả sau:

PHP - Tạo Trang Admin

Hiển Thị Thông Tin Sinh Viên

Sử dụng hàm mysqli_num_rows ở trên, chúng ta đã đếm được số lượng sinh viên có trong bảng students. Ở phần này chúng ta sẽ hiển thị các thông tin chi tiết hơn về sinh viên bao gồm có họ tên, ngày sinh và điểm trung bình.

Bây giờ bạn hãy mở file connect.php và thêm đoạn mã sau ở dòng 3 ngay sau khi gọi hàm mysqli_connect:

$link = mysqli_connect('localhost', 'root', 'abcdabcd', 'hoclaptrinh_org');
mysqli_set_charset($link, "utf8");

Hàm mysqli_set_charset dùng để cài đặt charset sử dụng khi kết nối với MySQL database.

Tiếp theo quay trở lại file admin.ph và comment đoạn mã hiển thị số lượng sinh viên trên đồng thời thêm vào đoạn mã như sau:

// echo mysqli_num_rows($result);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
print_r($row);
echo "<br>";

$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
print_r($row);
echo "<br>";

Ở trên tôi sử dụng hàm mysqli_fetch_array với đối số đầu là biến $result và đối số thứ 2 là một hằng số quy định kiểu dữ liệu trả về. Với việc sử dụng hằng số MYSQLI_ASSOC trong đối số thứ 2, kết quả trả về từ hàm mysqli_fetch_array sẽ là một mảng với khóa là tên cột của bảng studentsgiá trị tương ứng của khóa là giá trị của record tương ứng với cột trên bảng.

Khi mở trang admin.php trên trình duyệt bạn sẽ thấy kết quả như sau:

PHP - Tạo trang admin

Để hiển thị thông tin với format gọn gàng hơn, chúng ta sẽ sử dụng thẻ <table>. Cập nhật mã lệnh trong file admin.php như dưới đây:

<table>
    <thead>
        <tr>
            <th>MSSV</th>
            <th>Họ & Tên</th>
            <th>Ngày Sinh</th>
            <th>Điểm Trung Bình</th>
        </tr>
    </thead>
    <tbody>
        <?php while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) : ?>
            <tr>
                <td><?php echo $row['code']; ?></td>
                <td><?php echo $row['fullname']; ?></td>
                <td><?php echo $row['dob']; ?></td>
                <td><?php echo $row['gpa']; ?></td>
            </tr>
        <?php endwhile; ?>
    </tbody>
</table>

Ở trên tôi sử dụng vòng lặp while để đọc lần lượt từng record từ biến $result trả về:

<?php while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)): ?>
   // ...
<?php endwhile; ?>

Ngoài ra thêm đoạn mã CSS sau vào trước thẻ <body> để giúp thêm đường viền vào các ô trong bảng HTML:

table tr td {
    border-bottom: 2px solid #ccc;
    padding-left: 15px;
    padding-right: 15px;
}

Cuối cùng mở lại trang admin.php bạn sẽ thấy kết quả như sau:

PHP - Tạo trang admin

Content must not be empty

Related Tutorial