You are on page 1of 87

PHÁT TRIỂN ỨNG

DỤNG WEB
TS. NGUYỄN THẾ LỘC
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
nguyentheloc@humg.edu.vn

1
MYSQL SERVICE

2
PHPMYADMIN

3
TẠO DATABASE MỚI
Chọn nút New -> nhập thông tin về db mới -> chọn nút Create

4
TẠO DATABASE MỚI

5
TẠO BẢNG ĐẦU TIÊN

Đặt tên bảng là gì?

Bảng sẽ gồm bao nhiều trường (column –


Tạo 1 bảng để quản lý dữ liệu về các
field), tên của các trường là gì?
chuyến bay cho một hãng hàng không

Kiểu dữ liệu của từng trường là gì?

Khóa chính là trường nào?

6
TẠO BẢNG ĐẦU TIÊN

7
8 CÂU LỆNH SQL

• SQL là viết tắt của Structured


Query Language – ngôn ngữ truy
vấn mang tính cấu trúc.
• SQL được thiết kế để quản lý dữ
liệu trong một hệ thống quản lý cơ
sở dữ liệu quan hệ (RDBMS).
• SQL là ngôn ngữ cơ sở dữ liệu,
được dùng để tạo, xóa, lấy các
hàng và sửa đổi các hàng.
CREATE TABLE QUERY

9
10
11
INSERT DATA

12
INSERT DATA

13
INSERT DATA

14
TẠO BẢNG THỨ 2

Đặt tên bảng là gì?

Bảng sẽ gồm bao nhiều trường (column –


Tạo bảng để quản lý hành khách trên 1 field), tên của các trường là gì?
chuyến bay (bỏ qua dữ liệu/thông tin về
ngày tháng bay)

Kiểu dữ liệu của từng trường là gì?

Khóa chính là trường nào? Khóa ngoài


(foreign key) là trường nào?

15
TẠO BẢNG PASSENGERS

16
17
18
TẠO BẢNG PASSENGERS
Trường flight_id sẽ được tham chiếu đến trường id trong bảng fights đã tạo lúc trước thông qua
từ khóa FOREIGN KEY và REFERENCES

19
20
21
INSERT DATA INTO
PASSENGERS

22
INSERT DATA INTO
PASSENGERS

23
INSERT DATA INTO
PASSENGERS

24
HOẠT ĐỘNG CSDL - 1

Lưu thông tin của các khách hàng của


ngân hàng
Các nhóm thảo luận về thiết kế CSDL
để thực hiện những công việc sau
Lưu thông tin về giao dịch của các khách
hàng
HOẠT ĐỘNG CSDL - 2

Lưu thông tin của sinh viên


Các nhóm thảo luận về thiết kế CSDL
để thực hiện những công việc sau
Lưu thông tin về các học phần có trong
chương trình đào tạo

Lưu thông tin về điểm thi của sinh viên


HOẠT ĐỘNG CSDL - 3

Xác định số lượng bảng có trong CSDL


của nhóm

Xác định tên bảng, số trường trong từng


bảng
Các nhóm thảo luận về cơ sở dữ liệu
cho nhóm của mình
Xây dựng bảng dữ liệu trong CSDL của
mình

Viết thành báo cáo, giải thích lý do xây


dựng cơ sở dữ liệu

Làm slide và báo cáo trước lớp

27
TRUY VẤN THÔNG TIN TỪ CSDL

Hiện tại có những chuyến bay nào?

Có những chuyến bay nào xuất phát từ Hà Nội?

Có bao nhiêu chuyến bay xuất phát từ Hà Nội?

Có những chuyến bay nào có thời gian bay lâu hơn 500 (phút)?

Có những chuyến bay nào bay đến HCM và có thời gian bay lâu hơn 500 (phút)

28
CÂU LỆNH SQL
SELECT

Column1, column2: tên trường muốn truy vấn


* : truy vấn tât cả các trường

Table_name: tên bảng muốn truy vấn dữ


liệu

Condition: điều kiện truy vấn (ví dụ:


name = Long,
origin == ‘HN’ AND destination = ‘HP’

29
CÂU LỆNH SQL
SELECT
Hiện tại có những chuyến bay nào?
SELECT * FROM flights

Có những chuyến bay nào xuất phát từ Hà Nội?


SELECT * FROM flights WHERE origin = 'Hà Nội’

Có bao nhiêu chuyến bay xuất phát từ Hà Nội?


SELECT COUNT(*) FROM flights WHERE origin = 'Hà Nội’

Có những chuyến bay nào có thời gian bay lâu hơn 500 (phút)?
SELECT * FROM flights WHERE duration > 500

Có những chuyến bay nào bay đến HCM và có thời gian bay lâu hơn 500 (phút)
SELECT * FROM flights WHERE destination = 'HCM' AND duration > 500

30
CÂU LỆNH SQL
SELECT DISTINCT

SELECT DISTINCT: lấy về các giá trị không


trùng nhau ở cùng 1 cột

31
CÂU LỆNH SQL
SELECT
Có những chuyến bay nào bay đến HN hoặc HCM?
SELECT * FROM flights WHERE destination = 'Hà Nội’ OR destination
= ‘HCM’

Liệt kê những hành khách có mặt trên chuyến bay Hà Nội – Hải Phòng
SELECT passengers.name FROM passengers, flights WHERE
passengers.flight_id = flights.id AND flights.origin=“HN’ AND
destination=‘HP’;
Liệt kê những chuyên bay mà hành khách Nguyễn Hoàng Long đa bay
SELECT DISTINCT flights.id, flights.origin, flights.destination FROM
flights, passengers WHERE passengers.flight_id = flights.id AND
passengers.name = 'Nguyễn Hoàng Long';

Liệt kê tên những chuyến bay, hành khách họ “Nguyễn” đã từng bay
SELECT DISTINCT flights.id, flights.origin, flights.destination FROM
flights, passengers WHERE passengers.flight_id = flights.id AND
passengers.name LIKE 'Nguyễn%';
Liệt kê những chuyến bay có nhiều hơn 1 hành khách (+1 điểm)
SELECT * FROM flights WHERE id IN (SELECT flight_id FROM passengers
GROUP BY flight_id HAVING COUNT(*) > 1)

32
THỰC HÀNH

Thực hiện truy vấn lấy thông tin về các


giao dịch của khách hang cụ thể

Thực hiện truy vấn lây thông tin về điểm


1 học phần của của sinh viên

33
THỰC HÀNH

Thực hiện 12 câu lệnh SELECT để truy


vấn dữ liệu trong bảng dữ liệu của nhóm

Sinh viên up báo cáo trong đó chứa thiết


kế bảng dữ liệu và các câu lệnh SQL lên
Teams

Báo cáo trước lớp về bài mình làm

34
CÂU LỆNH SQL
DELETE

Table_name: tên bảng có dữ liệu muốn


xóa

Condition: điều kiện để xóa khỏi CSDL


(ví dụ: id = 1,
origin == ‘HN’ AND destination = ‘HP’)

35
CÂU LỆNH SQL
UPDATE

Table_name: tên bảng muốn truy vấn dữ


liệu

Column1, column2: tên trường muốn thay


đổi thông tin

Condition: điều kiện để chọn hang muốn


thay đổi thông tin (ví dụ: id = 1)

36
CÂU LỆNH SQL
DELETE - UPDATE
Xóa những chuyến bay có đích đến HMC
DELETE FROM flights WHERE destination = ‘HCM'

Hãng mới mua máy bay mới, cập nhật lại thời gian bay = 400
UPDATE flights SET duration = 400 WHERE origin = 'Hà Nội’
AND destination = 'Hải Phòng'

37
THỰC HÀNH

Thực hiện 4 câu lệnh DELETE

Thực hiện 4 câu lệnh UPDATE

38
PHP AND MYSQL

39
CONNECT TO MYSQL
USING PHP

connect.php

40
CONNECT TO MYSQL
USING PHP

41
COMMON MISTAKES

Khai báo sai tên $servername, $username, $password hoặc $db

42
CONNECT TO MYSQL
USING PHP

43
INSERT DATA TO TABLE

Kết nối đến


cơ sở dữ
liệu

44
INSERT DATA TO TABLE

Kết nối đến Tạo câu


cơ sở dữ lệnh sql
liệu (insert into)

45
INSERT DATA TO TABLE

Kết nối đến Tạo câu


Thực thi
cơ sở dữ lệnh sql
câu lệnh sql
liệu (insert into)

46
INSERT DATA TO TABLE

Kết nối đến Tạo câu Thực thi


Đóng kết
cơ sở dữ lệnh sql câu lệnh
nối
liệu (insert into) sql

1-insert.php 47
INSERT DATA TO TABLE

48
INSERT DATA TO TABLE

49
UPGRADE 1-INSERT.PHP
• Lỗi font tiếng Việt
• Chưa có thông báo thêm thành công
• Chưa có thông báo nếu sảy ra lỗi

50
UPGRADE 1-INSERT.PHP

51
UPGRADE 1-INSERT.PHP

52
UPGRADE 1-INSERT.PHP

53
PHP THỰC HÀNH 6

Xây dựng 1 trang web cho phép người


dùng nhập dữ liệu của các trường trong
bảng flights

Viết đoạn mã php để thêm dữ liệu vừa


nhập vào bảng flights trong CSDL

54
PHP THỰC HÀNH 6-1

Tạo một bảng dữ liệu có 6 trường trong


CSDL

Xây dựng trang web cho phép người dùng


nhập dữ liệu vào bảng mới tạo

55
READ AND DISPLAY
DATA FROM DATABASE

56
READ AND DISPLAY
DATA FROM DATABASE

57
READ AND DISPLAY
DATA FROM DATABASE

Kết nối đến Tạo câu Sử lý dữ


Thực thi Đóng kết
cơ sở dữ lệnh sql liệu thu
câu lệnh sql nối
liệu (select) được

58
FETCH_ASSOC

59
FETCH_ASSOC

60
FETCH_ASSOC

61
FETCH_ASSOC

62
FETCH_ASSOC

63
CHALLENGE - 1

sử dụng thêm các thẻ HTML và CSS để


cải tiến trang in kết quả ra màn hình cho
đẹp mắt hơn

64
THỰC HÀNH

Xây dựng trang web hiển thị dữ liệu trong


1 bảng CSDL mình đã làm

Sử dụng kết hợp CSS để trang trí cho


trang web của mình

65
SEARCH FLIGHT

66
SEARCH FLIGHT

4-search.css

67
SEARCH FLIGHT

4-displayFlight.php 68
SEARCH FLIGHT

69
SEARCH FLIGHT

70
CHALLENGE - 2
Nâng cấp trang web, cho phép người dùng lựa chọn điểm đến và điểm đi có trong CSDL thông
qua các combo box

71
CHALLENGE - 3

Xây dựng 1 trang web cho phép hành


khách đăng ký chuyến bay (thêm dữ liệu
vào bảng passenger)

72
CHALLENGE - 4

Xây dựng trang web tìm kiếm hành khách


trên 1 chuyến bay bất kỳ (ví dụ: Chuyến
bay HN đến HCM có những hành khách
nào đã đăng ký)

Xây dựng trang web tìm kiếm các chuyến


bay mà hành khách ‘A’ đã book

73
DELETE A RECORD

74
DELETE A RECORD

75
DELETE A RECORD

Kết nối đến Tạo câu Thực thi


Đóng kết
cơ sở dữ lệnh sql câu lệnh
nối
liệu (DELETE) sql

76
POSSIBLE ERROR

77
PHP THỰC HÀNH 7

Xây dựng trang web hủy bỏ vé đã mua


của một hành khách

78
CHALLENGE
NÂNG CẤP CHỨC NĂNG DELETE

79
NÂNG CẤP CHỨC NĂNG DELETE

80
UPDATE

81
UPDATE

82
UPDATE

83
UPDATE

84
UPDATE
Kết nối đến Tạo câu Thực thi
Đóng kết
cơ sở dữ lệnh sql câu lệnh
nối
liệu (UPDATE) sql

85
PHP THỰC HÀNH 8

Xây dựng trang web cho phép cập nhập


thông tin về một chuyến bay

86
CHALLENGES 6

Xây dựng trang web cho phép chọn


chuyến bay, sau đó cho phép sửa thông
tin của chuyến bay

87

You might also like