Các trang web hiển thị trên trình duyệt được mô tả bằng ngôn ngữ 
HTML
 HTML là một ngôn ngữ đánh dấu, dùng các thẻ (tag) và thuộc tính 
(attribute) để mô tả các đối tượng trong văn bản cần hiển thị
 Mỗi đối tượng được bao bởi một thẻ mở <tag> và một thẻ đóng 
</tag>. Nếu trong đối tượng không chứa gì, có thể viết gộp thẻ 
đóng và thẻ mở làm một: <tag/>
              
                                            
                                
            
 
            
                 20 trang
20 trang | 
Chia sẻ: luyenbuizn | Lượt xem: 1591 | Lượt tải: 0 
              
            Nội dung tài liệu Tìm hiểu My SQL và PHP, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
MySQL & PHP 
1 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Sơ lược về web 
 Các trang web hiển thị trên trình duyệt được mô tả bằng ngôn ngữ 
HTML 
 HTML là một ngôn ngữ đánh dấu, dùng các thẻ (tag) và thuộc tính 
(attribute) để mô tả các đối tượng trong văn bản cần hiển thị 
 Mỗi đối tượng được bao bởi một thẻ mở và một thẻ đóng 
. Nếu trong đối tượng không chứa gì, có thể viết gộp thẻ 
đóng và thẻ mở làm một: 
 Thuộc tính được định nghĩa trong thẻ mở: 
 ... 
 Các đối tượng có thể được định nghĩa lồng nhau 
 Ví dụ: 
 text: mô tả một đoạn văn bản 
 : mô tả 
một bức ảnh 
2 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Cấu trúc một trang web 
 Một trang web là một file văn bản có cấu trúc cơ bản như sau: 
 
 Tiêu đề trang web 
 Nội dung 
 Các thẻ cơ bản: 
 : chứa toàn bộ các phần tử của trang web 
 : chứa các thông tin về văn bản như tiêu đề, từ khoá,… 
 : tiêu đề trang web 
 : phần nội dung của trang web 
3 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Web nội dung tĩnh 
 Các trang web bằng HTML có nội dung cố định 
 Chỉ thay đổi khi người quản trị cập nhật 
 Người dùng không thể tương tác và thay đổi nội dung 
của trang web 
 Không thể tuỳ biến nội dung trang web tuỳ theo thời gian, 
người dùng,… hay các điều kiện khác 
 Web nội dung động: 
 Lập trình để sinh ra mã HTML bằng các ngôn ngữ web 
4 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Web Service 
(Apache, IIS,…) 
Web Browser 
(Firefox, Chrome, 
IE, Webkit,…) 
network 
Cơ chế hoạt động của web nội dung động 
5 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Web Script 
(PHP, ASP, JSP,…) 
Web Service 
(Apache, IIS,…) 
Web Browser 
(Firefox, Chrome, 
IE, Webkit,…) 
Database 
(MySQL, 
MSSQL,…) 
network 
n
e
tw
o
rk
Giới thiệu PHP 
 PHP 
 Một ngôn ngữ rất phổ biến để lập trình web 
 Ngôn ngữ dạng script khá gần với C 
 Không sử dụng con trỏ hay địa chỉ 
 Nguyên tắc hoạt động: 
 Sinh ra mã HTML của trang web bằng các hàm print(), 
echo() 
 Chạy trực tiếp không qua biên dịch 
 Mã lệnh PHP nằm trong thẻ 
<?php 
 // ... 
?> 
6 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Ví dụ một PHP script 
<?php 
$title = 'Tiêu đề trang web'; 
$logo_img = 'logo.jpg'; 
?> 
 Nội dung 
 " /> 
7 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Một số khái niệm của PHP 
 Biến: 
 Dùng dấu $ trước tên, không cần khai báo, không có kiểu 
cố định 
 $x = 100; 
 $x = 'Value: ' . $x; 
 Mảng: 
 for ($i=0; $i<10; $i++) 
 $a[$i] = 20*$i; 
 Chuỗi ký tự: dùng '...' hoặc "..." 
 $s1 = '$100'; 
 $s2 = "Price: $s1"; // = "Price: $100" 
 print('' . $s2 . ''); 
8 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
MySQL với PHP 
 PHP cung cấp sẵn một thư viện để truy cập các 
CSDL sử dụng MySQL 
 Các tính năng và cáh sử dụng tương tự như thư 
viện MySQL bằng ngôn ngữ C 
 Thiết lập kết nối 
 Thực hiện các câu truy vấn 
 Lấy kết quả 
 Kiểm tra lỗi 
9 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Tham số của trang web với phương thức GET 
 Khái niệm: 
 Tương tự như việc các 
chương trình có tham 
số từ dòng lệnh, các 
trang web cũng có các 
tham số được cho ở 
URL 
10 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
 PHP cho phép sử dụng các tham số này thông qua mảng 
$HTTP_GET_VARS (với chỉ số là tên của tham số) 
 Ví dụ: 
print('ID: ' . $HTTP_GET_VARS['ID'] . '' . 
 'Name: ' . $HTTP_GET_VARS['Name'] . '' . 
 'Sex: ' . $HTTP_GET_VARS['Sex']); 
Sử dụng MySQL trong PHP 
11 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Thiết lập và đóng kết nối 
 Thiết lập kết nối: 
 mysql_connect($server, $username, $password) 
 Trả về kết nối được thiết lập 
 Chọn CSDL làm việc: 
 mysql_select_db($db_name) 
 Đóng kết nối: 
 mysql_close($conn) 
 Ví dụ: 
 $server = '192.168.1.50'; 
 $usr = 'abc'; 
 $pwd = '12345'; 
 $db_name = 'myweb'; 
 $conn = mysql_connect($server, $usr, $pwd); 
 if ($conn == null) exit('Database error'); 
 mysql_select_db($db_name); 
 // Do stuff... 
 mysql_close($conn); 
12 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Kiểm tra lỗi 
 Dùng các hàm sau để lấy thông tin về lỗi: 
 Mã lỗi: int mysql_errno($conn) 
 Thông điệp lỗi: string mysql_error($conn) 
 Ví dụ: 
 $conn = mysql_connect($server, $usr, $pwd); 
 if ($conn == null) { 
 print('Error ' . mysql_errno($conn) . 
 ': ' . mysql_error($conn)); 
 exit(1); 
 } 
 13 
EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Thực hiện câu truy vấn 
 Để thực hiện câu truy vấn, dùng hàm: 
 mysql_query($query, $conn) 
 Các tham số: 
 $query: chuỗi ký tự chứa câu truy vấn 
 $conn: kết nối đã được thiết lập 
 Kết quả trả về: 
 Nếu xảy ra lỗi, trả về FALSE 
 Nếu thành công, tuỳ thuộc câu truy vấn 
 SELECT: trả về kết quả 
 INSERT, UPDATE, DELETE, DROP: trả về TRUE 
14 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Lấy kết quả trả về của câu lệnh SELECT 
 Sau khi thực hiện câu truy vấn, gọi hàm sau để lấy 
từng hàng kết quả: 
 array mysql_fetch_array($result, $type) 
 $type: kiểu chỉ số mảng 
 MYSQL_ASSOC: chỉ số bằng tên thuộc tính 
 MYSQL_NUM: chỉ số bằng số thứ tự 
 MYSQL_BOTH: cả hai chỉ số 
 Cuối cùng, kết thúc và giải phóng bộ nhớ đệm chứa 
kết quả: 
 mysql_free_result($result) 
 Di chuyển con trỏ đọc kết quả: 
 mysql_data_seek($result, $row_num) 
15 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Các thông tin về kết quả trả về 
 Số thuộc tính (trường) của kết quả: 
 int mysql_num_fields($result) 
 Số hàng: 
 int mysql_num_rows($result) 
 ID của dữ liệu mới được thêm (câu lệnh INSERT): 
 int mysql_insert_id($result) 
 ID phải được định nghĩa với thuộc tính AUTO_INCREMENT 
 Số hàng đã bị thay đổi (câu lệnh INSERT, UPDATE,…) 
 int mysql_affected_rows($result) 
16 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Ví dụ - SELECT 
$result = mysql_query('select ID, NICKNAME, NAME from 
USER‘, $conn); 
if ($result == FALSE) handle_error($conn); 
$row = mysql_fetch_array($result, MYSQL_NUM); 
$num_rows = mysql_num_rows($result); 
print('Number of rows: ' . $num_rows . ''); 
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
 print('ID: ' . $row['ID'] . ', ' . 
 'Nickname: ' . $row['NICKNAME'] . ', ' . 
 'Name: ' . $row['NAME'] . ''); 
} 
mysql_free_result(result); 
17 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Ví dụ - INSERT 
if (mysql_query("insert into 
USER(username, password, level) 
values('superhero', 'chipchip', 3)", $conn) 
 == FALSE) handle_error($conn); 
print(mysql_affected_rows($conn) . 
' rows added'); 
print('ID of inserted user: ' . 
mysql_insert_id($conn)); 
18 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Ví dụ - UPDATE 
if (mysql_query('update USER 
set level = 5 
where id in (2, 3, 4)', $conn) == FALSE) 
handle_error($conn); 
print(mysql_affected_rows($conn) . 
' rows updated'); 
19 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Bài tập 
1. Định nghĩa một quan hệ SinhVien, sau đó viết một 
chương trình PHP thêm vào CSDL một sinh viên 
và in ra ID của sinh viên vừa được thêm 
2. Viết chương trình PHP nhập ID của một sinh viên 
và in ra thông tin của sinh viên đó 
3. Viết chương trình PHP nhập tên của sinh viên và in 
ra thông tin những người có tên như đã nhập 
20 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
            Các file đính kèm theo tài liệu này:
 07_mysql_php_4987.pdf 07_mysql_php_4987.pdf