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
20 trang |
Chia sẻ: lylyngoc | Lượt xem: 1970 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Bài giảng về MySQL & 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