Ứ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ả

pdf56 trang | Chuyên mục: MySQL | Chia sẻ: dkS00TYs | Lượt xem: 2361 | Lượt tải: 3download
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:

  • pdfỨng dụng cơ sở dữ liệu trên Web với PHP và MySQL.pdf