Ứng dụng cơ sở dữ liệu trên Web với PHP và MySQL
Cơ sở dữ liệu
Bảng
Trường (các cột)
Bản ghi (các dòng)
Khóa (key)
Truy vấn
Thực hiện thao tác: tạo mới, cập nhật, xóa,
Trả về kết quả
Tóm tắt nội dung Ứng dụng cơ sở dữ liệu trên Web với PHP và MySQL, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Truy vấn Xử lý kết quả Đóng kết nối KẾT NỐI MÁY CHỦ CSDL Cú pháp mysql_connect(servername, username, password) Các tham số servername: tên của máy chủ CSDL cần kết nối, mặc định là “localhost:3306” username: tên sử dụng để truy nhập vào máy chủ CSDL password: mật khẩu truy nhập Giá trị trả về giá trị kết nối thành công tới máy chủ CSDL (giá trị khác 0) trong trường hợp không kết nối được, trả về giá trị 0 (false) ĐÓNG KẾT NỐI Cú pháp mysql_close(connection) Tham số connection: kết nối đã được thiết lập bằng lệnh mysql_connect() trước đó Chú ý: Việc sử dụng lệnh mysql_close() không thực sự cần thiết đối với các kết nối tạm thời, các kết nối tự động được đóng khi hết đoạn kịch bản Tăng tính chặt chẽ của chương trình, yêu cầu có mysql_close() VÍ DỤ <?php $con = mysql_connect("localhost","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } echo "Truy nhap thanh cong"; // some code mysql_close($con); ?> LỆNH DIE() Cú pháp die(“chuỗi_ký_tự”) Tác dụng Hiển thị thông báo và ngừng thực hiện các kịch bản sau đó Thường dùng để thông báo lỗi CHỌN CSDL Cú pháp mysql_select_db(database, connection) Tham số database: cơ sở dữ liệu cần thao tác connection: kết nối đã được thiết lập Giá trị trả về Trả về giá trị 0 (false) nếu có lỗi VÍ DỤ <?php $con = mysql_connect("localhost", "root", ""); if (!$con) die('Could not connect: ' . mysql_error()); echo "Truy nhap thanh cong "; $selected_db = mysql_select_db("vuilb_site", $con); if (!$selected_db) die('Could not select: ' . mysql_error()); echo "Da chon CSDL"; // some code mysql_close($con); ?> THỰC HIỆN TRUY VẤN Select Query và Executed Query Cú pháp mysql_query(query, connection) Tham số query: câu lệnh truy vấn connection: kết nối đã được thiết lập Giá trị trả về Trả về giá trị 0 (false) nếu có lỗi TẠO CƠ SỞ DỮ LIỆU Lệnh SQL CREATE DATABASE database_name VÍ DỤ <?php $con = mysql_connect("localhost", "root", ""); if (!$con) die('Could not connect: ' . mysql_error()); if (mysql_query("CREATE DATABASE my_db",$con)) echo "Database created"; else echo "Error creating database: " . mysql_error(); mysql_close($con); ?> XÓA CƠ SỞ DỮ LIỆU Lệnh SQL DROP DATABASE database_name VÍ DỤ <?php $con = mysql_connect("localhost", "root", ""); if (!$con) die('Could not connect: ' . mysql_error()); if (mysql_query("DROP DATABASE my_db",$con)) echo "Database deleted"; else echo "Error deleting database: " . mysql_error(); mysql_close($con); ?> TẠO BẢNG Lệnh SQL CREATE TABLE table_name ( column_name1 data_type NOT NULL, PRIMARY KEY (column_name), column_name2 data_type, column_name3 data_type, .... ) VÍ DỤ <?php $con = mysql_connect("localhost","root",""); mysql_select_db("my_db", $con); $sql = "CREATE TABLE Persons ( personID int NOT NULL AUTO_INCREMENT, PRIMARY KEY(personID), FirstName varchar(15), LastName varchar(15), Age int )"; if (mysql_query($sql, $con)) echo "Table created!"; else echo "Error creating table: " . mysql_error(); mysql_close($con); ?> XÓA BẢNG Lệnh SQL DROP TABLE table_name XÓA BẢNG <?php $con = mysql_connect("localhost", "root", ""); if (!$con) die('Could not connect: ' . mysql_error()); if (mysql_query("DROP TABLE Persons",$con)) echo “Table deleted"; else echo "Error deleting table: " . mysql_error(); mysql_close($con); ?> THÊM BẢN GHI MỚI Lệnh SQL INSERT INTO table_name VALUES (value1, value2, value3,...) Hoặc INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...) VÍ DỤ <?php $con = mysql_connect("localhost","root",""); mysql_select_db("my_db", $con); $result = mysql_query("INSERT INTO Persons (FirstName, LastName, Age) VALUES ('Peter', 'Griffin', '35')"); if ($result) echo "record inserted"; else echo "Error insert new record: " . mysql_error(); $sql = "INSERT INTO Persons VALUES ('1', 'Glenn', 'Quagmire', '33')"; $result = mysql_query($sql); if ($result) echo "record inserted"; else echo "Error insert new record: " . mysql_error(); mysql_close($con); ?> TẠO BẢN GHI TỪ FORM Thông tin nhận từ form được lưu vào CSDL Thông tin được đọc từ biến $_GET, $_POST hoặc $_REQUEST rồi được chèn vào CSDL VÍ DỤ - TẠO FORM Nhap thong tin tu form Firstname: Lastname: Age: XỬ LÝ THÔNG TIN <?php $con = mysql_connect("localhost","root",""); mysql_select_db("my_db", $con); $FirstName = $_POST["FirstName"]; $LastName = $_POST["LastName"]; $Age = $_POST["Age"]; $r = mysql_query("INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$FirstName', '$LastName', '$Age')"); if ($r) echo "record inserted"; else echo "Error insert new record: " . mysql_error(); mysql_close($con); ?> TRUY XUẤT DỮ LIỆU Sử dụng câu lệnh SQL SELECT column_name(s) FROM table_name WHERE column_name operator value ORDER BY column_name(s) ASC|DESC XỬ LÝ KẾT QUẢ Lệnh mysql_fetch_array(data) Trả về 1 bản ghi trong tập kết quả dưới dạng mảng kết hợp, trả về giá trị 0 (false) nếu có lỗi hoặc không còn bản ghi nào nữa. Tự động chuyển sang bản ghi tiếp theo. VÍ DỤ <?php $con = mysql_connect("localhost","root",""); mysql_select_db("my_db", $con); $result = mysql_query("SELECT * FROM Persons ORDER BY age"); while($row = mysql_fetch_array($result)) { echo $row['FirstName']; echo " " . $row['LastName']; echo " " . $row['Age']; echo ""; } mysql_close($con); ?> ĐẾM SỐ BẢN GHI Lệnh SQL SELECT COUNT(*) AS alias FROM table_name WHERE column_name operator value Lệnh PHP mysql_num_rows(data) VÍ DỤ <?php $con = mysql_connect("localhost","root",""); mysql_select_db("my_db", $con); $result = mysql_query("SELECT COUNT(*) AS nums FROM Persons WHERE Age>20"); $row = mysql_fetch_array($result); echo "So ban ghi: " . $row['nums']; mysql_close($con); ?> VÍ DỤ <?php $con = mysql_connect("localhost","root",""); mysql_select_db("my_db", $con); $result = mysql_query("SELECT * FROM Persons WHERE Age>20"); $nums = mysql_num_rows($result); echo "So ban ghi: " . $nums; mysql_close($con); ?> PHÂN TRANG VỚI PHP Chia tập kết quả ra thành các trang Mỗi trang hiển thị các bản ghi trong 1 đoạn nào đó (1-5, 6-10, 11-15, …) Để tính số trang Đếm số bản ghi (vd: 18 bản ghi) Biết số bản ghi cho 1 trang (ví dụ: 5 bản ghi) ►Tính ra được số trang (ceil(18/5)) PHÂN TRANG (TIẾP) Truy xuất toàn bộ kết quả, hiển thị các bản ghi tương ứng với từng trang một. Phải truy xuất toàn bộ dữ liệu Truy xuất các bản ghi tương ứng với một trang xác định. Chỉ truy xuất các bản ghi cần thiết PHÂN TRANG (TIẾP) Sử dụng lệnh SQL SELECT … LIMIT start, length start là vị trí bắt đầu truy xuất length là số bản ghi cần truy xuất VÍ DỤ <?php $con = mysql_connect("localhost","root",""); mysql_select_db("my_db", $con); $recordperpage = 2; $page = 1; $start = ($page - 1) * $recordperpage; $result = mysql_query("SELECT * FROM Persons ORDER BY age LIMIT $start, $recordperpage"); while($row = mysql_fetch_array($result)) { echo $row['FirstName']; echo " " . $row['LastName']; echo " " . $row['Age']; echo ""; } mysql_close($con); ?> CẬP NHẬT DỮ LIỆU Lệnh SQL UPDATE table_name SET column1=value, column2=value2, ... WHERE some_column=some_value VÍ DỤ <?php $con = mysql_connect("localhost","root",""); mysql_select_db("my_db", $con); mysql_query("UPDATE Persons SET Age = '36' WHERE FirstName = 'Peter' AND LastName = 'Griffin'"); mysql_close($con); ?> XÓA BẢN GHI Lệnh SQL DELETE FROM table_name WHERE some_column = some_value VÍ DỤ <?php $con = mysql_connect("localhost","root",""); mysql_select_db("my_db", $con); mysql_query("DELETE FROM Persons WHERE LastName='Griffin'"); mysql_close($con); ?> YÊU CẦU Ôn lại các lệnh SQL Thực hiện với PHP Đọc thêm các tài liệu tham khảo CHÚ Ý! Lệnh chuyển trang tự động trong PHP header(“location: url”); Ví dụ header(“location: index.php”); Trong JavaScript window.location = url; Ví dụ window.location = index.php; CHÚ Ý! Truyền tham sô ́ cho một trang PHP Mục đích: truyền thông tin cho một trang cần xử lý. Ví dụ: gọi trang delete.php để xóa 1 bản ghi nào đó trong tập bản ghi Thực hiện: truyền thông tin theo phương thức GET delete.php?id=5 + Trang delete.php sử dụng biến $_GET[] để lấy thông tin tham sô ́ được truyền echo $_GET[„id‟]; //tra ̉vê ̀gia ́trị 5 BÀI TẬP 1 Tạo form đăng nhập gồm username và password Kiểm tra CSDL xem có username đó chưa? Nếu có thì kiểm tra mật khẩu, nếu đúng thì báo đăng nhập thành công. Nếu không có thì thông báo là username không tồn tại. BÀI TẬP 2 Tạo form đăng ký người sử dụng gồm tên người sử dụng, mật khẩu và nhập lại mật khẩu Kiểm tra xem mật khẩu và nhập lại mật khẩu có trùng nhau không Kiểm tra trên CSDL xem có username đó chưa? Nếu có rồi thì báo là username đã tồn tại Nếu chưa có thì thêm username vào CSDL BÀI TẬP 3 Giả sử có CSDL chứa danh sách sinh viên Thực hiện in danh sách sinh viên dưới dạng bảng bao gồm các cột là số thứ tự, họ tên và ngày sinh BÀI TẬP 4 Giả sử có CSDL chứa các tin tức bao gồm thời gian, tiêu đề, mô tả và nội dung. Thực hiện việc hiển thị phân trang Mỗi trang hiển thị 5 tin (5 bản ghi) Có 2 liên kết: <<< để hiển thị trang trước >>> để hiển thị trang sau
File đính kèm:
- Ứng dụng cơ sở dữ liệu trên Web với PHP và MySQL.pdf