Hướng dẫn php and mysql notes - ghi chú php và mysql

Thiết kế hệ thống database gồm các bảng sau

1) Bảng user gồm: id tự tăng, fullname, email -> unique, birthday, address

2) Bảng note gồm: id tự tăng, user_id, title, content, created_at, updated_at

Yêu cầu:

- Tạo trang init.php -> viết thông báo khởi tạo dữ liêu + button -> Khi người dùng click vào button này thì thực hiện tạo database đặt tên là db_notes và tạo 2 bảng trên.

- login.php -> Hiển thị màn hình chính -> cho người dùng đăng nhập -> đăng nhập thành công sẽ chuyển sang trang note.php

- signup.php -> cho phép đăng ký tài khoản -> sau khi đăng ký thành công -> chuyển sang trang login.php

- note.php -> Hiển thị note của người dùng đã đăng nhập -> chỉ xem được note khi đăng login thành công.

Chú ý: Thêm các chức năng thêm/sửa/xóa ghi chú - thêm chức năng tìm kiếm ghi chú theo tiêu đề.

Sử dụng 1 template bootstrap cho dự án

  • Download file ví dụ
  • Trong file download đã có sẵn file tintuc.sql, file này là file dữ liệu mẫu, sau khi đã tạo database chúng ta có thể đưa dữ liệu từ file tintuc.sql bằng thao tác import có trong phpMyAdmin.
  • Trang chủ
  • Hướng dẫn học

Hướng dẫn học

  • Học PHP
  • Từ phiên bản PHP 5.5 trở đi, thư viện MySQL sẽ không còn được hỗ trợ, và phiên bản PHP 7 trở lên đã gỡ bỏ hoàn toàn thư viện MySQL, thay vào đó 2 thư viện khác được sử dụng là MySQLi và PDO.
  • Trong phạm vi của phần hướng dẫn PHP này chỉ đề cập đến MySQLi, vì cấu trúc và các viết tương tự như thư viện MySQL trước đó.
  • MySQLi có 2 lựa chọn cách viết khác nhau:

    • Theo kiểu thủ tục: viết giống như MySQL chỉ khác là thay đổi mysql thành mysqli.
    • Theo kiểu hướng đối tượng

Một số hàm cơ bản MySQLi sử dụng trong phần hướng dẫn học này:

Kiểu thủ tục (Procedural)
(Procedural)
Kiểu hướng đối tượng (Object-Oriented)
(Object-Oriented)
Mô tả
$ketnoi = mysqli_connect() = mysqli_connect() $ketnoi = new mysqli() = new mysqli() Tạo kết nối database
mysqli_connect_error() $ketnoi->connect_error ->connect_error Lỗi kết nối
mysqli_close($ketnoi) $ketnoi) $ketnoi->close() ->close() Ngắt kết nối MySQLi
$ketqua = mysqli_query($ketnoi, $sql) = mysqli_query($ketnoi, $sql) $ketqua = $ketnoi->query($sql) = $ketnoi->query($sql) Truy vấn table từ $ketnoi Với $sql là câu truy vấn select $ketnoi
Với $sql là câu truy vấn select
mysqli_num_rows($ketqua) $ketqua) $ketqua->num_rows ->num_rows Số lượng số hàng có trong table.
mysqli_fetch_assoc($ketqua) $ketqua) $ketqua->fetch_assoc() ->fetch_assoc() Số lượng số hàng có trong table.

mysqli_fetch_assoc($ketqua)

$ketqua->fetch_assoc()

Kết nối MySQLi

Nếu chưa biết về cách tạo database và thông tin kết nối thì bạn có thể xem lại cách tạo từ phpMyAdmin.

Nếu chưa biết file PHP được tạo ở đâu thì bạn có thể xem lại Thư mục làm việc khi cài XAMPP.

Kiểu hướng đối tượng

// Khai báo username
$password = "123456";      // Khai báo password
$server   = "localhost";   // Khai báo server
$dbname   = "tintuc";      // Khai báo database

// Kết nối database tintuc
$connect = mysqli_connect($server, $username, $password, $dbname);

//Nếu kết nối bị lỗi thì xuất báo lỗi và thoát.
if (!$connect) {
    die("Không kết nối :" . mysqli_connect_error());
    exit();
}
echo "Khi kết nối thành công sẽ tiếp tục dòng code bên dưới đây."
?>

// Khai báo username
$password = "123456";      // Khai báo password
$server   = "localhost";   // Khai báo server
$dbname   = "tintuc";      // Khai báo database

// Kết nối database tintuc
$connect = new mysqli($server, $username, $password, $dbname);

//Nếu kết nối bị lỗi thì xuất báo lỗi và thoát.
if ($connect->connect_error) {
    die("Không kết nối :" . $conn->connect_error);
    exit();
}
echo "Khi kết nối thành công sẽ tiếp tục dòng code bên dưới đây."
?>

Kiểu thủ tục

Nếu không xảy ra lỗi kết nối thì trình duyệt sẽ hiển thị như bên dưới.

Khi kết nối thành công sẽ tiếp tục dòng code bên dưới đây. tintuc.sql, file này là file dữ liệu mẫu, sau khi đã tạo database chúng ta có thể đưa dữ liệu từ file tintuc.sql bằng thao tác import có trong phpMyAdmin.