Hệ thống website dựa trên cơ sở dữ liệu trong PHP
Bây giờ chúng ta hãy tạo một hệ thống website, trong đó nội dung của các trang sẽ không được lưu trữ trong các file, mà trong cơ sở dữ liệu. Giả sử trong cơ sở dữ liệu của chúng ta có một bảng như thế này:
| id | title | content |
|---|---|---|
| 1 | title1 | <div> content1 </div> |
| 2 | title2 | <div> content2 </div> |
| 3 | title3 | <div> content3 </div> |
Giả sử chúng ta muốn nhận các trang của mình theo
các URL dạng /page/1, trong đó số sẽ
đại diện cho id của trang
mà chúng ta muốn lấy.
Hãy bắt đầu triển khai. Đầu tiên, trong một file riêng biệt hãy tạo kết nối đến cơ sở dữ liệu và kết nối file này với file của chúng ta:
<?php
$link = require 'connect.php';
?>
Lấy URL được yêu cầu:
<?php
$url = $_SERVER['REQUEST_URI'];
?>
Sử dụng biểu thức chính quy để tách URL thành các phần:
<?php
preg_match('#/page/(\d+)#', $url, $match);
?>
Ghi id từ nhóm bắt giữ (capture group) vào một biến:
<?php
$id = $match[1];
?>
Thực hiện truy vấn đến cơ sở dữ liệu, thông qua id
lấy trang được yêu cầu:
<?php
$query = "SELECT * FROM pages WHERE id=$id";
$res = mysqli_query($link, $query) or die(mysqli_error($link));
$page = mysqli_fetch_assoc($res);
?>
Lấy file template:
<?php
$layout = file_get_contents('layout.php');
?>
Trong file template, thực hiện chèn tiêu đề và nội dung:
<?php
$layout = str_replace('{{ title }}', $page['title'], $layout);
$layout = str_replace('{{ content }}', $page['content'], $layout);
?>
Gửi trang web đã được lắp ráp đến trình duyệt:
<?php
echo $layout;
?>
Tổng hợp tất cả lại với nhau và chúng ta có đoạn mã sau:
<?php
require 'connect.php';
$url = $_SERVER['REQUEST_URI'];
preg_match('#/page/(\d+)#', $url, $match);
$id = $match[1];
$query = "SELECT * FROM pages WHERE id=$id";
$res = mysqli_query($link, $query) or die(mysqli_error($link));
$page = mysqli_fetch_assoc($res);
$layout = file_get_contents('layout.php');
$layout = str_replace('{{ title }}', $page['title'], $layout);
$layout = str_replace('{{ content }}', $page['content'], $layout);
echo $layout;
?>
Hãy triển khai hệ thống đã được mô tả. Kiểm tra hoạt động của nó.