Tải bản đầy đủ (.doc) (47 trang)

Xây dựng website đặt hàng online cho nhà hàng hà phương bằng php và mysql

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.42 MB, 47 trang )

MỤC LỤC
LỜI NÓI ĐẦU...................................................................................................................... 3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT..................................................................................... 4
1. PHP.................................................................................................................................................4
1.2 Lịch sử phát triển của PHP........................................................................................................4
1.3 Cú pháp.....................................................................................................................................7
Các kiểu dữ liệu cơ sở.....................................................................................................................8
1.4 Biến trong lập trình PHP...........................................................................................................8
1.5 Hằng trong lập trình PHP..........................................................................................................8
1.6 Toán tử trong PHP....................................................................................................................8
1.7 Biểu thức trong PHP.................................................................................................................9
1.7.1. Biểu thức điều kiện...........................................................................................................9
1.7.2 Biểu thức switch ... case.....................................................................................................9
1.7.3 Biểu thức vòng lặp.............................................................................................................9
1.8 Thao tác làm việc trên Form trong PHP..................................................................................10
1.8.1 Xử lý Form trong PHP.......................................................................................................10
1.8.3 Tìm hiểu quy trình uplpoad file trong PHP.......................................................................11
1.9 Tìm hiểu quy trình làm việc trên File và mảng........................................................................12
1.9.1 Tìm hiểu quy trình làm việc trên File................................................................................12
1.9.2 Tìm hiểu quy trình làm việc trên mảng............................................................................13
1.9.3 Các hàm bổ trợ cho mảng................................................................................................13
1.10 Tìm hiểu hàm và gọi lại hàm trong PHP................................................................................14
1.10.1 Hàm do người dùng tự định nghĩa.................................................................................14
1.10.2 Gọi lại hàm trong PHP........................................................................................................14
1.11 Quản lý phiên làm việc trong PHP.........................................................................................14
1.11.1 Phiên làm việc Cookie........................................................................................................15
1.11.2 Phiên làm việc Session.......................................................................................................15
2. MySQL ..........................................................................................................................................16
2.1 MySQL là gì ?...........................................................................................................................16
2.2 Đặc điểm của MySQL..............................................................................................................16
2.3 Những khái niệm cơ bản.........................................................................................................16


2.4 Câu truy vấn cơ bản trong MySQL..........................................................................................17
2.5 Sử dụng PHP kết hợp MySQL..................................................................................................20

1


CHƯƠNG 2 : KHẢO SÁT, PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG..........................21
1. Khảo sát hệ thống.........................................................................................................................21
2. Xác định yêu cầu hệ thống............................................................................................................21
2.1. Yêu cầu tổng quan.................................................................................................................21
2.2 Yêu cầu chi tiết.......................................................................................................................22
2.3. Yêu cầu tính năng kỹ thuật....................................................................................................23
3. Phân tích hệ thống........................................................................................................................23
3.1.Tác nhân hệ thống..................................................................................................................23
3.2.Usecase tổng quan..................................................................................................................24
3.4. Usecase cho từng chức năng cụ thể......................................................................................24
3.5. Biểu đồ trình tự.....................................................................................................................27
3.6. Biểu đồ hoạt động.................................................................................................................34

CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH................................................................ 41
3.1. Giới thiệu chương trình.............................................................................................................41
3.1.1. Giao diện trang chủ.............................................................................................................41
3.1.2. Giao diện trang đăng nhập quản trị....................................................................................42
3.1.3. Giao diện quản lý thành viên quản trị.................................................................................42
3.1.4. Giao diện trang quản trị......................................................................................................43
3.1.5. Giao diện quản lý đơn hàng................................................................................................43
3.1.6. Giao diện trang quản lý danh mục sản sản phẩm...............................................................44

KẾT LUẬN........................................................................................................................ 45
TÀI LIỆU THAM KHẢO.................................................................................................. 46

NHẬN XÉT CỦA GIÁO VIÊN.......................................................................................... 47

2


LỜI NÓI ĐẦU
Với internet chúng ta đã thực hiện được nhiều công việc với tốc độ nhanh hơn
và chi phí thấp hơn nhiều so với cách thức truyền thống. Chính điều này đã và đang
thay đổi cuộc sống của mọi người từ học tập, việc làm, văn hóa đều có sự tác động
mạnh mẽ của công nghệ thông tin và internet. Trước đây muốn tìm hiểu một vấn đề
nào đó chúng ta sẽ phải dung các phương thức tuyền thống như đọc sách, báo, nghe
đài, tivi hay nghe trực tiếp từ người khác còn ngày nay chúng ta có thêm một kênh
thông tin mới các thông tin trên internet. Nhận thấy sức mạnh của internet và công
nghệ thông tin trong việc tổ chức và quản lý công việc nên em đã lựa chọn đề tài “Xây
dựng website đặt hàng online cho nhà hàng Hà Phương bằng php và mysql”. Nội
dung của đề tài là xây dựng website đặt hàng online , giúp cho người quản lý dễ dàng
quản lý và khách hàng dễ chọn lựa sản phẩm mình yêu thích.
Đề tài bao gồm các nội dung:
-

Cơ sở lý thuyết.

-

Phân tích thiết kế

-

Xây dựng website.


Sau một thời gian học tập và nghiên cứu, em đã hoàn thành đề tài. Em xin chân
thành cảm ơn cô : Lương Thị Minh Huế đã nhiệt tình hướng dẫn em hoàn thành tốt
báo cáo thực tập chuyên ngành này. Mặc dù đã cố gắng hết sức để hoàn thiện đề tài
với tất cả lỗ lực của bản thân nhưng với kinh nghiệm kiến thức còn hạn chế của em thì
đề tài của em còn nhiều thiếu sót. Em mong nhận được sự quan tâm những ý kiến
đóng góp của thầy, cô giáo để đề tài của em hoàn thiện hơn!

3


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1. PHP
PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lập
trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết
cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích hợp với web
và có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng web,
tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản
phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở
thành một ngôn ngữ lập trình web phổ biến nhất thế giới.
1.2 Lịch sử phát triển của PHP
• PHP/FI
PHP được phát triển từ một sản phẩm có tên là PHP/FI. PHP/FI do Rasmus
Lerdorf tạo ra năm 1995, ban đầu được xem như là một tập con đơn giản của các mã
kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng.
Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home Page Tools'. Khi cần đến
các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để có thể
truy vấn tới các cơ sở dữ liệu và giúp cho người sử dụng phát triển các ứng dụng web
đơn giản. Rasmus đã quyết định công bố mã nguồn của PHP/FI cho mọi người xem,
sử dụng cũng như sửa các lỗi có trong nó đồng thời cải tiến mã nguồn.
PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một số

các chức năng cơ bản cho PHP như ta đã biết đến chúng ngày nay. Nó có các biến kiểu
như Perl, thông dịch tự động các biến của form và cú pháp HTML nhúng. Cú pháp này
giống như của Perl, mặc dù hạn chế hơn nhiều, đơn giản và có phần thiếu nhất quán.
Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C, đã thu hút
được hàng ngàn người sử dụng trên toàn thế giới với xấp xỉ 50.000 tên miền đã được
ghi nhận là có cài đặt nó, chiếm khoảng 1% số tên miền có trên mạng Internet. Tuy đã
có tới hàng nghìn người tham gia đóng góp vào việc tu chỉnh mã nguồn của dự án này
thì vào thời đó nó vẫn chủ yếu chỉ là dự án của một người.
PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thời gian
khá dài chỉ được công bố dưới dạng các bản beta. Nhưng không lâu sau đó, nó đã được
thay thế bởi các bản alpha đầu tiên của PHP 3.0.
4


• PHP 3
PHP 3.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với các
phiên bản PHP mà chúng ta được biết ngày nay. Nó đã được Andi Gutmans và Zeev
Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước đó. Lý do chính
mà họ đã tạo ra phiên bản này là do họ nhận thấy PHP/FI 2.0 hết sức yếu kém trong
việc phát triển các ứng dụng thương mại điện tử mà họ đang xúc tiến trong một dự án
của trường đại học. Trong một nỗ lực hợp tác và bắt đầu xây dựng dựa trên cơ sở User
đã có của PHP/FI, Andi, Rasmus và Zeev đã quyết định hợp tác và công bố PHP 3.0
như là phiên bản thế hệ kế tiếp của PHP/FI 2.0, và chấm dứt phát triển PHP/FI 2.0.
Một trong những sức mạnh lớn nhất của PHP 3.0 là các tính năng mở rộng
mạnh mẽ của nó. Ngoài khả năng cung cấp cho User cuối một cơ sở hạ tầng chặt chẽ
dùng cho nhiều cơ sở dữ liệu, giao thức và API khác nhau, các tính năng mở rộng của
PHP 3.0 đã thu hút rất nhiều nhà phát triển tham gia và đề xuất các mô đun mở rộng
mới. Hoàn toàn có thể kết luận được rằng đây chính là điểm mấu chốt dẫn đến thành
công vang dội của PHP 3.0. Các tính năng khác được giới thiệu trong PHP 3.0 gồm có
hỗ trợ cú pháp hướng đối tượng và nhiều cú pháp ngôn ngữ nhất quán khác.

Ngôn ngữ hoàn toàn mới đã được công bố dưới một cái tên mới, xóa bỏ mối
liên hệ với việc sử dụng vào mục đích cá nhân hạn hẹp mà cái tên PHP/FI 2.0 gợi
nhắc. Nó đã được đặt tên ngắn gọn là 'PHP', một kiểu viết tắt hồi quy của "PHP:
Hypertext Preprocessor".
Vào cuối năm 1998, PHP đã phát triển được con số cài đặt lên tới hàng chục
ngàn người sử dụng và hàng chục ngàn Web site báo cáo là đã cài nó. Vào thời kì đỉnh
cao, PHP 3.0 đã được cài đặt cho xấp xỉ 10% số máy chủ Web có trên mạng Internet.
PHP 3.0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian 9
tháng được cộng đồng kiểm nghiệm.
• PHP 4
Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được công bố, Andi
Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi của PHP. Mục
đích thiết kế là nhằm cải tiến tốc độ xử lý các ứng dụng phức tạp, và cải tiến tính mô
5


đun của cơ sở mã PHP. Những ứng dụng như vậy đã chạy được trên PHP 3.0 dựa trên
các tính năng mới và sự hỗ trợ khá nhiều các cơ sở dữ liệu và API của bên thứ ba,
nhưng PHP 3.0 đã không được thiết kế để xử lý các ứng dụng phức tạp như thế này
một cách có hiệu quả.
Một động cơ mới, có tên 'Zend Engine' (ghép từ các chữ đầu trong tên của Zeev
và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công, và lần đầu
tiên được giới thiệu vào giữa năm 1999. PHP 4.0, dựa trên động cơ này, và đi kèm với
hàng loạt các tính năng mới bổ sung, đã chính thức được công bố vào tháng 5 năm
2000, gần 2 năm sau khi bản PHP 3.0 ra đời. Ngoài tốc độ xử lý được cải thiện rất
nhiều, PHP 4.0 đem đến các tính năng chủ yếu khác gồm có sự hỗ trợ nhiều máy chủ
Web hơn, hỗ trợ phiên làm việc HTTP, tạo bộ đệm thông tin đầu ra, nhiều cách xử lý
thông tin người sử dụng nhập vào bảo mật hơn và cung cấp một vài các cấu trúc ngôn
ngữ mới.
Với PHP 4, số nhà phát triển dùng PHP đã lên đến hàng trăm nghìn và hàng

triệu site đã công bố cài đặt PHP, chiếm khoảng 20% số tên miền trên mạng Internet.
Nhóm phát triển PHP cũng đã lên tới con số hàng nghìn người và nhiều nghìn
người khác tham gia vào các dự án có liên quan đến PHP như PEAR, PECL và tài liệu
kĩ thuật cho PHP.
• PHP 5
Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm phát triển
PHP tự mãn. Cộng đồng PHP đã nhanh chóng giúp họ nhận ra những yếu kém của
PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử lý XML,
không hỗ trợ giao thức máy khách mới của MySQL 4.1 và 5.0, hỗ trợ dịch vụ web yếu.
Những điểm này chính là mục đích để Zeev và Andi viết Zend Engine 2.0, lõi của PHP
5.0. Một thảo luận trên Slashdot đã cho thấy việc phát triển PHP 5.0 có thể đã bắt đầu
vào thời điểm tháng 12 năm 2002 nhưng những bài phỏng vấn Zeev liên quan đến
phiên bản này thì đã có mặt trên mạng Internet vào khoảng tháng 7 năm 2002. Ngày
29 tháng 6 năm 2003, PHP 5 Beta 1 đã chính thức được công bố để cộng đồng kiểm
nghiệm. Đó cũng là phiên bản đầu tiên của Zend Engine 2.0. Phiên bản Beta 2 sau đó
đã ra mắt vào tháng 10 năm 2003 với sự xuất hiện của hai tính năng rất được chờ đợi:
Iterators, Reflection nhưng namespaces một tính năng gây tranh cãi khác đã bị loại
6


khỏi mã nguồn. Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã được công bố để kiểm
tra với việc phân phối kèm với Tidy, bỏ hỗ trợ Windows 95, khả năng gọi các hàm
PHP bên trong XSLT, sửa chữa nhiều lỗi và thêm khá nhiều hàm mới. PHP 5 bản
chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm
tra thử bao gồm Beta 4, RC 1, RC2, RC3. Mặc dù coi đây là phiên bản sản xuất đầu
tiên nhưng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP.
Ngày 14 tháng 7 năm 2005, PHP 5.1 Beta 3 được PHP Team công bố đánh dấu
sự chín muồi mới của PHP với sự có mặt của PDO, một nỗ lực trong việc tạo ra một
hệ thống API nhất quán trong việc truy cập cơ sở dữ liệu và thực hiện các câu truy vấn.
Ngoài ra, trong PHP 5.1, các nhà phát triển PHP tiếp tục có những cải tiến trong nhân

Zend Engine 2, nâng cấp mô đun PCRE lên bản PCRE 5.0 cùng những tính năng và
cải tiến mới trong SOAP, streams và SPL.
• PHP 6
Hiện nay phiên bản tiếp theo của PHP đang được phát triển, PHP 6 bản sử dùng
thử đã có thể được download tại địa chỉ . Phiên bản PHP 6 được kỳ
vọng sẽ lấp đầy những khiếm khuyết của PHP ở phiên bản hiện tại, ví dụ: hỗ trợ
namespace (hiện tại các nhà phát triển vẫn chưa công bố rõ ràng về vấn đề này); hỗ trợ
Unicode; sử dụng PDO làm API chuẩn cho việc truy cập cơ sở dữ liệu, các API cũ sẽ
bị đưa ra thành thư viện PECL...
1.3 Cú pháp
 Cách khai báo PHP

Cách
1
2
3
4

Thẻ mở
<%
language=”php”>

 Xuất giá trị PHP
Cú pháp: Echo thongtin;
-

Thông tin là chuỗi: Chuỗi ( text, HTML)

Thông tin là biến.
7

Thẻ đóng
?>
?>
%>
</script>


-

Thông tin gồm chuỗi và biến.Dùng dấu . hoặc , để nỗi chuỗi và biến hoặc

chuỗi và chuỗi.
 Chú thích PHP:

// Nội dung chú thích
/*
Nội dung chú thích
*/

 Các kiểu dữ liệu cơ sở
-

Kiểu Boolean: chỉ có một trong hai giá trị TRUE và FALSE
Kiểu Interger (số nguyên): Giá trị có thể là số trong hệ thập phân, thập lục

phân, bát phân
- Kiểu Float/Double (số thực)

- Kiểu String (chuỗi, ký tự)
• Mỗi ký tự chiếm 1 byte
• Mỗi chuỗi có thể chứa một hay nhiều ký tự thuộc 256 ký tự khác nhau
• Chuỗi không có giới hạn về kích thước
- Kiểu Array (mảng các phần tử):
- Kiểu Object (đối tượng)
- Chuyển đổi kiểu dữ liệu
• Trong quá trình tính toán, kiểu dữ liệu có thể không con phù hợp nữa (kết
quả tính toán vượt khỏi phạm vi của dữ liệu cũ)  chuyển đổi kiểu dữ liệu
• Thực hiện: ghi tên kiểu dữ liệu mà biến muốn chuyển đổi vào phía trước
biến
1.4 Biến trong lập trình PHP
 Khởi tạo biến: Biến là một giá trị có thể thay đổi được. Giá trị nào là giá trị
gán sau cùng thì đó là giá trị của biến
 Biến nội suy là một biến nhận biết được trong chuỗi
“”  Nội suy biến và có thể chứa dấu ‘
‘’  Không nội suy biến, có thể chứa dấu $ và dấu “
1.5 Hằng trong lập trình PHP
-

Hằng là giá trị không thay đổi trong quá trình thực hiện chương trình
Cú pháp: Define(“TENHANG”,giá trị);
Hằng không thể nội suy trong một chuỗi.

1.6 Toán tử trong PHP
Đối với mọi ngôn ngữ lập trình, toán tử và biểu thức luôn là những kiến thức cơ
bản được sử dụng để xử lý các thao tác trong giai đoạn lập trình.
 Toán tử gán:
8



-

Toán tử gán khởi tạo 1 biến. Nó gồm ký tự đơn =. Toán tử gán lấy giá trị của

toán hạng bên phải gán nó vào toán hạng bên trái.
 Toán tử số học:
- Là dạng phép tính giản đơn cộng, trừ, nhân, chia trong số học. Ngoài ra còn
có phép chia lấy dư (%). Được sử dụng để lấy ra đơn vị dư của 1 phép toán.

Toán tử so sánh:
- Là toán tử được sử dụng để thực hiện các phép toán so sánh giữa hai số hạng.

Toán tử logic:
- Toán tử logic là các tổ hợp các giá trị boolean.

Toán tử kết hợp:
- Khi tạo mã PHP, chúng ta sẽ thường nhận thấy cần phải tăng hoặc giảm lượng
biến một số nguyên nào đó. Ta thường thực hiện điều này khi đếm 1 giá trị nào
đó trong vòng lặp
1.7 Biểu thức trong PHP
1.7.1. Biểu thức điều kiện
Là biểu thức dùng kiểm tra 1 sự kiện. Nếu chúng thỏa điều kiện đó thì sẽ thực
thi một hành động. Ngược lại sẽ là một hành động khác.
Cú pháp:
If(điều kiện){
//Thực thi hành động
}else{
//Thực thi hành động
}

1.7.2 Biểu thức switch ... case
Là biểu thức sử dụng để giảm thiểu quá trình xử lý dữ liệu nếu có quá nhiều phép toán
if else.
1.7.3 Biểu thức vòng lặp
a) while()
Phép lặp này yêu cầu phải thỏa mãn điều kiện thì mới thực thi được vòng lặp
while(điều kiện){
// Hành động
Phép kết hợp
9


}
b)do….while()
Phép lặp này sẽ thực thi hành động ít nhất là một lần. Sau đó mới tiến hành
kiểm tra điều kiện.
Cú pháp
do{
//hành động
Phép kết hợp
}while(điều kiện)
c) for
Phép lặp này là phép toán gộp các tham số. Giúp người lập trình giảm thiểu thời
gian phải khai báo biến và các tham số khi thực thi việc lặp dữ liệu.
Cú pháp
for(khai báo biến ; Điều kiện ; biến tăng hoặc giảm){
//thực hiện hành động nếu thỏa điều kiện
}
1.8 Thao tác làm việc trên Form trong PHP
1.8.1 Xử lý Form trong PHP

Thẻ form trong HTML có cú pháp như sau:
<form action="link xử lý" name="ten_form" method="phương thức" >
Vậy1 form phải bao gồm:
-

Tên form để dễ dàng tách biệt với giá trị của chúng.
Action: hành động chuyển tiếp đến link xử lý.
Method: Là phương thức truyền bao gồm POST và GET.

Đoạn code làm những công việc sau:
Đầu tiên khi khách nhập liệu tên đang nhâp vào thì chúng sẽ chuyển tới trang
kiemtra.php để tiến hành xử lý thông tin. Trên phương thức POST, với tên form là
fdangnhap. Giá trị mà chúng ta gửi là txtuser vừa nhập liệu.
Vậy làm cách nào để chúng ta lấy được giá trị vừa nhập liệu nào?.
10


- PHP cho phép ta lấy giá trị dựa vào 2 phương thức POST và GET.
+ Đới với POST ta có : $_POST[‘Giá trị’]
+ Đối với GET ta có : $_GET[‘Giá trị’]
Vậy với đoạn code trên có thể lấy được biến xử lý là : $_POST[‘txtuser’];
Với txtuser là tên của field mà người sử dụng nhập liệu vào.
-

Phương thức GET: Phương thức này cũng được dùng để lấy dữ liệu từ form

nhập liệu. Tuy nhiên nhiệm vụ chính của nó vẫn là lấy nội dung trang dữ liệu từ web
server.
-


Phương thức POST: Phương thức này được sử dụng để lấy dữ liệu từ form

nhập liệu. Và chuyển chúng lên trình chủ webserver.
Ngoài ra còn rất nhiều sự khác biệt giữa GET và POST như: cache, security, resubmit, bookmark....
Tham khảo theo link />-

Phương thức REQUEST: chứa cả $GET và $POST, trong đó $POST sẽ ghi

đè lên $_GET nếu trùng key. Vì vậy khuyến cáo POST và GET để dữ liệu rõ ràng và
an toàn hơn
1.8.3 Tìm hiểu quy trình uplpoad file trong PHP
Quy trình upload file
a.jpg

a.tmp

a.jpg

Client

Temp

Server

Biến môi trường:
$_FILES["file"]["name"] – Tên gốc của file
$_FILES["file"]["type"] – Định dạng file
$_FILES["file"]["size"] – Kích thước của file
$_FILES["file"]["tmp_name"] – Tên tạm của file
$_FILES["file"]["error"] - the error code resulting from the file upload

Nguyên tắc up file temp
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" .$_FILES["file"]
["name"]);
11


Hiển thị thêm các thông tin về tên file, định dạng file, kích thước file
1.9 Tìm hiểu quy trình làm việc trên File và mảng
1.9.1 Tìm hiểu quy trình làm việc trên File
 Mở file:
fopen(“$fpath”,”option”);
- $fpath: Đường dẫn file cần mở
- option: Thuộc tính
 Đóng file:
fclose(File mở);
 Đọc file:
Có 3 cách đọc file thông thường trong PHP đó là đọc từng dòng, đọc từng ký tự
và đọc hết file.
- fgetc($fp) để đọc theo từng ký tự
- fgets($fp) để đọc theo từng dòng
- feof($fp) tìm ra vị trí cuối của 1 file
- fread($fp, $size) đọc hết tất cả file, trong đó $fp là đối tượng lúc mở file còn
$size là kích cỡ của file cần đọc.
o filesize($path): lấy kích cỡ của file cần đọc
 Ghi file:
fwrite(FILE,Nội dung);
Thuộc tính:
W: ghi đè
A: Ghi tiếp tục vào file.
\r\n: Xuống dòng trong file text

Các hàm xử lý file khác:
+
+
+
+
+
+

Kiểm tra file có tồn tại hay không:
Cú pháp: file_exists($path)
$path là đường dẫn đến file cần kiểm tra,
Kiểm tra File có được cấp quyền ghi hay không?
Cú pháp: is_writable ($path)
$path là đường dẫn đến file cần kiểm tra,
Lấy nội dung một File không cần dung hàm fread
Cú pháp: file_get_contents($path)
$path là đường dẫn đến file cần lấy
12


+
+
+
+
+
+
+
+
+
+

+
+
+
+
+

Ghi nội dung File mà không cần dung hàm fwrite
Cú pháp: file_put_contents($path, $noidung)
$path là đường dẫn đến file cần ghi
$noidung là nội dung bạn muốn ghi vào file.
Đổi tên File
Cú pháp: rename($oldname, $newname)
$oldname là đường dẫn đến file cần đổi tên
$newname là đường dẫn mới có kèm tên file cần đổi
Copy File
Cú pháp: copy($source, $dest)
$source là path file cần
$dest là path file cần di chuyển tới
Xóa File
Cú pháp: unlink($path)
$path là đường dẫn đến file cần xóa
Kiểm tra một đường dẫn Folder có tồn tại không
Cú pháp: is_dir($filename)
$filename là đường dẫn đến folder cần kiểm tra
Tạo một Folder mới
Cú pháp: mkdir($path)
$path là đường dẫn đến folder cần tạo

1.9.2 Tìm hiểu quy trình làm việc trên mảng



Mảng tuần tự:

Mảng sử dụng khóa dựa vào những con số cụ thể, và chúng tăng dần.


Mảng bất tuần tự:

Là mảng sử dụng từ, cụm từ để làm khóa, thay vì thông thường vẫn sử dụng số
làm khóa.
1.9.3 Các hàm bổ trợ cho mảng
+ Gộp mảng: array_merge($m1,$m2)
+ Tách mảng: array_slice($mảng, vị trí, số lượng)
+ Sắp xếp phần tử trong mảng:
Sort($m); Rsort($m)
Asort($m) , ksort($m)
Arsort($m), krsort($m)
+ Tìm kiếm phần tử trong mảng:
In_array(“Phần tử”,$m)

13


1.10 Tìm hiểu hàm và gọi lại hàm trong PHP
1.10.1 Hàm do người dùng tự định nghĩa
 Hàm không tham số
Cú pháp:
function tenham()
{
//Lệnh thực thi

}
 Hàm có tham số
Cú pháp:
function function_name($gt1,$gt2)
{
//Hành động
}
 Hàm có tham số với giá trị trả về:
Cú pháp:
function function_name(Có hoặc không có đối số)
{
//Thuc thi
return giatri;
}

1.10.2 Gọi lại hàm trong PHP
PHP cung cấp nhiều hàm cho phép triệu gọi lại file. Như hàm include("URL
đến file"), require("URL Đến file").
Ngoài hai cú pháp trên còn có include_once(), require_once(). Hai hàm này
cũng có trách nhiệm gọi lại hàm. Những chúng sẽ chỉ gọi lại duy nhất 1 lần mà thôi.
1.11 Quản lý phiên làm việc trong PHP
Cookie và session là hai phương pháp sử dụng để quản lý các phiên làm việc
giữa người sử dụng và hệ thống. Việc quản lý phiên làm việc này sẽ giúp tạo ra sự
chứng thực hiệu quả bởi việc xác nhận thông tin trước khi truy cập vào một phân vùng
cố định. Ngoài ra, việc quản lý tốt phiên làm việc cũng giúp người truy cập cảm thấy
14


dễ dàng sử dụng dịch vụ của trang web cho những lần truy cập sau. Bởi cớ chế quản lý
phiên làm việc ghi nhận lại quá trình truy cập của người sử dụng khi họ thăm viếc

trang web lần đầu.
1.11.1 Phiên làm việc Cookie
Cookie là 1 đoạn dữ liệu được ghi vào đĩa cứng hoặc bộ nhớ của máy người sử
dụng. Nó được trình duyệt gửi ngược lên lại server mỗi khi trình duyệt tải 1 trang web
từ server. Những thông tin được lưu trữ trong cookie hoàn toàn phụ thuộc vào website
trên server. Mỗi website có thể lưu trữ những thông tin khác nhau trong cookie, ví dụ
thời điểm lần cuối thăm website, đánh dấu đã login hay chưa, v.v...
 Thiết lập cookie:
Để thiết lập cookie ta sử dụng cú pháp:
Setcookie("tên cookie","giá trị", thời gian sống)
Tên cookie là tên mà chúng ta đặt cho phiên làm việc.
Giá trị là thông số của tên cookie.
Chú ý: Kịch bản cookie phải đặt trên mọi giá trị trả về bao gồm thẻ HTML và
lệnh echo.
Kịch bản cookie phải đặt trên mọi giá trị trả về bao gồm thẻ HTML và lệnh
echo.
 Sử dụng cookie:
Để sử dụng lại cookie vừa thiết lập, chúng ta sử dụng cú pháp:
Cú pháp: $_COOKIE["tên cookies"]
Tên cookie là tên mà chúng ta thiết lập phía trên.
 Hủy Cookie:
Để hủy 1 cookie đã được tạo ta có thể dùng 1 trong 2 cách sau:
+ Cú pháp: setcookie("Tên cookie")
Gọi hàm setcookie với chỉ duy nhất tên cookie mà thôi
+ Dùng thời gian hết hạn cookie là thời điểm trong quá khứ.
1.11.2 Phiên làm việc Session
Một cách khác quản lý người sử dụng là session. Session được hiểu là khoảng
thời gian người sử dụng giao tiếp với 1 ứng dụng. Một session được bắt đầu khi người
sử dụng truy cập vào ứng dụng lần đầu tiên, và kết thúc khi người sử dụng thoát khỏi
15



ứng dụng. Mỗi session sẽ có được cấp một định danh (ID) khác nhau và nội dung được
lưu trong thư mục thiết lập trong file php.ini (tham số session.save_path).
 Thiết lập session:
Để thiết lập 1 session ta sử dụng cú pháp: session_start()
Đoạn code này phải được nằm trên các kịch bản HTML. Hoặc những lệnh echo,
printf.
Để thiết lập 1 giá trị session, ngoài việc cho phép bắt đầu thực thi session.
Chúng ta còn phải đăng ký 1 giá trị session. Để tiện cho việc gán giá trị.
2. MySQL
2.1 MySQL là gì ?
Mysql là hệ quản trị dữ liệu miễn phí, được tích hợp sử dụng chung với apache,
PHP. Chính yếu tố phát triển trong cộng đồng mã nguồn mở nên mysql đã qua rất
nhiều sự hỗ trợ của những lập trình viên yêu thích mã nguồn mở. Mysql cũng có cùng
một cách truy xuất và mã lệnh tương tự với ngôn ngữ SQL. Nhưng Mysql không bao
quát toàn bộ những câu truy vấn cao cấp như SQL. Về bản chất Mysql chỉ đáp ứng
việc truy xuất đơn giản trong quá trình vận hành của website nhưng hầu hết có thể giải
quyết các bài toán trong PHP.
2.2 Đặc điểm của MySQL
- MySQL là một phần mềm quản trị CSDL dạng server-based (gần tương đương
với SQL Server của Microsoft).
- MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể có nhiều bảng
quan hệ chứa dữ liệu.
- MySQL có cơ chế phân quyền ngýời sử dụng riêng, mỗi ngýời dùng có thể
được quản lý một hoặc nhiều CSDL khác nhau, mỗi ngýời dùng có một tên truy cập
(user name) và mật khẩu tương ứng để truy xuất đến CSDL.
2.3 Những khái niệm cơ bản
 Những định nghĩa cơ bản
+ Dữ liệu (data):

• Là các thông tin của đối tượng (Ví dụ: Người, vật, một khái niệm, sự việc
…) được lưu trữ trên máy tính
• Có thể truy nhập vào dữ liệu để trích xuất ra các thông tin
16


• Dữ liệu được mô tả dưới nhiều dạng khác nhau (Các ký tự, ký số, hình ảnh
…) Mỗi cách mô tả như vậy gắn với một ngữ nghĩa nào đó
• Dữ liệu về đối tượng có thể khác nhau, tùy thuộc vào ngữ cảnh
+ Cơ sở dữ liệu: Tập hợp dữ liệu được tổ chức có cấu trúc liên quan với nhau
và được lưu trữ trong máy tính
• CSDL được thiết kế, xây dựng cho phép người dùng lưu trữ dữ liệu, truy
xuất thông tin hoặc cập nhật dữ liệu
+ Bảng: lưu trữ từng thành phần trong CSDL
+ Dòng dữ liệu: chi tiết dữ liệu trong bảng
+ Cột: trường nhận biết trong bảng.
 Định nghĩa 1 số thuật ngữ:
+ NULL : Giá trị cho phép rỗng.
+ AUTO_INCREMENT : Cho phép giá trị tăng dần (tự động).
+ UNSIGNED : Phải là số nguyên dương
+ PRIMARY KEY : Cho phép nó là khóa chính trong bảng.
c)Loại dữ liệu trong Mysql:
Giới thiệu 1 số loại thông dụng: 1 số dữ liệu khác có thể tham khảo trên trang
chủ của mysql.

2.4 Câu truy vấn cơ bản trong MySQL

+
+
+

+

Làm việc với cơ sở dữ liệu (CSDL):
CREATE DATABASE tên_cơ_sở_dữ_liệu; Tạo csdl
Use tên_database; Sử dụng csdl
Exit; Thoát khỏi cơ sở dữ liệu:
CREATE TABLE user (<tên_cột><mô_tả>,…,<tên_cột_n>…..<mô_tả_n>);

Tạo 1 bảng trong cơ sở dữ liệu:
+ show tables: Hiển thị bảng
17


+

+

+

+


show columns from table; Hiển thị có bao nhiêu cột trong bảng:
Làm việc với bảng
Truy xuất dữ liệu:
Cú pháp: SELECT tên_cột FROM Tên_bảng
Truy xuất dữ liệu với điều kiện: Where
Cú pháp:SELECT tên_cột FROM Tên_bảng WHERE điều kiện;
Truy cập dữ liệu và sắp xếp theo trình tự
Cú pháp: SELECT tên_cột FROM Tên_bảng WHERE điều kiện (có thể có


where hoặc không) ORDER BY Theo quy ước sắp xếp.
• Trong đó quy ước sắp xếp bao gồm hai thông số là ASC (từ trên xuống
dưới), DESC (từ dưới lên trên).
• select user_id,username from user order by username ASC ;
+ Truy cập dữ liệu có giới hạn :
• Cú pháp: SELECT tên_cột FROM Tên_bảng WHERE điều kiện (có thể có
where hoặc không) LIMIT vị trí bắt đầu, số record muốn lấy ra
+ Thêm một cột vào bảng: ALTER TABLE
<tên_cột><thuộc_tính> AFTER <tên_cột>
+ Thêm giá trị vào bảng:

INSERT

INTO

tên_bảng

ADD

Tên_bảng(tên_cột)

VALUES(Giá_trị_tương_ứng);
+ Cập nhật dữ liệu trong bảng: Update tên_bảng set tên_cột=Giá trị mới
WHERE (điều kiện).
+ Xóa dữ liệu trong bảng: DELETE FROM tên_bảng WHERE (điều kiện).
Nếu không có ràng buộc điều kiện, chúng sẽ xó toàn bộ giá trị của các record trong
bảng.

+ Kết nối bảng: Việc nối 2 với nhau để có một thông tin đầy đủ được gọi là


JOIN. Sử dụng webpage PHPMyAdmin quản lý cơ sở dữ liệu
Đầu tiên bật Xampp, mở một trình duyệt web lên và gõ vào
http://localhost/phpmyadmin
 1.Tạo Database (CSDL – Cơ Sở Dữ Liệu)
Bước 1: Nhập tên CSDL vào ô Create new database.
Bước 2: Chọn bạn chọn utf8_general_ci (thể hiện được tiếng việt)
Bước 3: Nhấn Create
 2.Tạo Bảng (table)
Bước 1: Chọn database
Bước 2: Mục Name: khai báo tên table muốn tạo (ví dụ: danhmuc)
Bước 3: Mục Number of fields: khai báo số field trong table (ví dụ: 3)
18


Bước 4: Nhắp nút Go
 3. Thêm dữ liệu vào Bảng (table)
Bước 1: Chọn table
Bước 2: Nhắp link Insert (xem hình)
Bước 3: Nhập dữ liệu
Bước 4: Nhắp nút Go
 4. Xem dữ liệu trong Bảng (table)
Bước 1: Chọn table muốn xem dữ liệu
Bước 2: Nhắp link Browse (xem hình)
Mỗi lần hiện 30 records
 5. Sửa và Xóa dữ liệu trong Bảng (table)
Bước 1: Chọn table muốn xóa sửa (ví dụ danhmuc)
Bước 2: Nhắp link Browse.
Bước 3: Hiệu chỉnh/xóa:
Sửa record: Nhắp nút Edit (cây viết) trên dòng chứa record.

Xóa record : Nhắp nút Drop (dấu nhân màu đỏ) trên dòng chứa record.
 6. Sửa cấu trúc Table (bảng):
Bước 1: Chọn table
Bước 2: Nhắp link Structure
Bước 3:
Chỉnh field: Nhắp nút Change (cây viết)
Xóa field : Nhắp nút Drop (dấu nhân màu đỏ)
Thêm field : Nhắp nút Go trong mục Add
 7. Đổi tên Bảng (table)
Bước 1: Chọn table
Bước 2: Nhắp link Operations
Bước 3. Rename table to: gõ tên mới
Bước 4: Nhắp nút Go
 8. Xóa Bảng (table)
Bước 1: Chọn table
Bước 2: Nhắp link Drop
19


2.5 Sử dụng PHP kết hợp MySQL
1- Kết nối cơ sở dữ liệu:
Cú pháp:mysql_connect("hostname","user","pass")
2- Lựa chọn cơ sở dữ liệu:
Cú pháp:mysql_select_db("tên_CSDL")
3- Thực thi câu lệnh truy vấn:
Cú pháp:mysql_query("Câu truy vấn ở đây");
4- Đếm số dòng dữ liệu trong bảng:
Cú pháp:mysql_num_rows();
5- Lấy dữ liệu từ bảng đưa vào mảng:
Cú pháp:mysql_fetch_array();

Hoặc mysql_fetch_assoc();
6- Đóng kết nối cơ sở dữ liệu:
Cú pháp:mysql_close();

20


CHƯƠNG 2 : KHẢO SÁT, PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
1. Khảo sát hệ thống
Thực trạng và giải pháp.
Hiện nay khách hàng vẫn còn phải trực tiếp đến tận nhà hàng để đặt hàng. Do
việc đặt hàng trực tiếp của khách hàng với nhà hàng vẫn còn mang nặng tính thủ công
truyền thống. Khách hàng thường xuyên đến tận nhà hàng trực tiếp đặt hàng tại nhà
hàng. Hình thức đặt hàng trực tiếp này khó sử lý khi nhà hàng đông khách dễ gây
nhầm lẫn các sản phẩm của khách hàng với nhau, có nhiều khách hàng không hài lòng
khi họ phải chờ đợi quá lâu do đông người, mang lại hiệu quả không cao , mất nhiều
thời gian và công sức .
Dựa trên những khuyết điểm còn tồn tại, giải pháp đưa ra chính là xây dựng 1
website đặt hàng online cho nhà hàng. Việc ứng dụng công nghệ thông tin vào trong
cuộc sống để xây dựng website đặt hàng online giúp cho tiến kiệm công và thời gian
của con người. Do đó, để khách hàng có thể chọn một sản phẩm ưa thích nhanh
hơn,tiết kiệm thời gian, hiệu quả trước khi đến nhà hàng mua các sản phẩm mình cần
mua.Vì vậy xây dựng một website đặt hàng online để giúp khách hàng có thể chọn các
sản phẩm của nhà hàng một cách dễ dàng, tiết kiệm công sức, thời gian và nhanh
chóng .
2. Xác định yêu cầu hệ thống
2.1. Yêu cầu tổng quan
 Đối với nhà hàng
Mục đích xây dựng hệ thống website đặt hàng online là nhằm quảng bá sản
phẩm tới khách hàng và tạo ra một cầu nối trung gian giữa nhà hàng và khách hàng.

Hệ thống cần xây dựng là nhằm tăng khả năng liên kết công việc của các nhân
viên, thực hiện tốt cả hai công việc chính là giới thiệu và quản lý hàng. Từ đó thúc đẩy
công việc chung của cửa hàng nhằm phát sinh lợi nhuận, đem lại lợi ích cho nhân viên
nói riêng và cửa hàng nói chung.
Hệ thống xây dựng phải có chức năng liên kết với các đối tác khác, sẽ là bạn
hàng quan trọng và tin cậy của cửa hàng để cùng khai thác các lợi ích thương mại điện
tử mang lại. Hệ thống cung cấp một “ không gian” để có thể quảng cáo, giúp họ có
thêm nhiều khách hàng và quảng bá thương hiệu.
21


 Đối với khách hàng
Website phải là một địa chỉ tốt, đáng tin cậy để khách hàng có thể dễ dàng truy
cập thường xuyên để tìm kiếm các sản phẩm yêu thích .
Website sẽ được đánh giá cao nếu giao diện đẹp mắt, dễ dàng sử dụng và tốc độ
truy xuất dữ liệu nhanh. Trong xu thế thông tin phát triển mạnh mẽ hiện nay thì
website nên thiết kế thêm một mục tin tức để khách hàng có thể thường xuyên truy cập
vào, vừa có thể xem các tin tức giải trí vừa có thể cập nhật thông tin về sản phẩm. Từ
đó tạo nên một thói quen, một sở thích là hễ bật trình duyệt web là khách hàng sẽ đánh
địa chỉ website của nhà hàng. Đó sẽ là một lợi thế lớn để cạnh tranh với các site “đối
thủ” khác, tăng sự tin cậy của khách hàng với nhà hàng.
2.2 Yêu cầu chi tiết
 Khách hàng
Trên trang chủ của Website, thành phần chính sẽ được hiển thị một số sản
phẩm, nổi bật nhất, cùng các thông tin mới nhất về sản phẩm.
Xử lý mặt hàng đã chọn: thêm, xóa, cập nhật số lượng mà khách hàng đặt
hàng
- Chức năng tìm kiếm sản phẩm: cho phép khách hàng tìm kiếm sản phẩm.
Hệ thống phải được trình bày sao cho dễ hiểu, giao diện đẹp, dễ sử dụng, và
làm cho khách hàng thấy được những thông tin mình cần, cung cấp thông tin quảng

cáo hấp dẫn thu hút khách hàng tham quan, tìm hiểu nhà hàng.
 Quản trị viên:
Đây là chức năng quan trọng nhất của hệ thống, là “cơ quan đầu não” điều
khiển mọi hoạt động lớn nhỏ. Do đó phải thiết kế trang quản trị này thật rõ ràng, đầy
đủ chức năng, dễ dàng nắm bắt và xử lý công việc. Trang này gồm các chức năng quản
lý sau: quản lý thành viên quản trị,quản lý quảng cáo, quản lý tin tức, cập nhật danh
mục, thông tin sản phẩm. Quản trị viên sẽ thường xuyên login vào trang web để có thể
điều khiển và quản lý các công việc chung như sau:
- Đăng nhập: quản trị viên đăng nhập vào hệ thống để quản trị toàn bộ hệ thống.
- Quản lý đồ ăn: bao gồm các việc thêm, xóa, sửa các thông tin về các loại sản
phẩm hay nhóm sản phẩm của nhà hàng.
- Quản lý loại đồ ăn: có chức năng thêm, xóa các sản phẩm trên trang web.
Thêm vào danh sách sản phẩm những sản phẩm mới một cách chi tiết.
22


- Quản lý đơn hàng: có chức năng thêm và xóa hanh mục sản phẩm.
- Quản lí menu, thay đổi banner, thay đổi thông tin quản trị.
2.3. Yêu cầu tính năng kỹ thuật
STT
1

2

3

4

5


Nội dung yêu cầu
Hệ thống hoạt động trên môi trường Internet và cho phép nhiều người
dùng cùng truy cập vào sử dụng cùng một lúc
Giao diện được trình bày khoa học, hợp lý và đảm bảo mỹ thuật hài
hòa với mục đích của hệ thống, tuân thủ các chuẩn về truy cập thông
tin.
Hệ thống phải đáp ứng khả năng an toàn, bảo mật theo 2 mức: mức
xác thực người sử dụng, mức CSDL
Có khả năng thống kê những số liệu trống (những dữ liệu định kỳ theo
tháng chưa được nhập) giúp người quản trị, người sử dụng có thể theo
dõi hoạt động cập nhật dữ liệu
Phải có cơ chế sao lưu dữ liệu định kỳ, đột xuất đảm bảo nhanh chóng
đưa hệ thống hoạt động trở lại trong trường hợp có sự cố xảy ra

3. Phân tích hệ thống
3.1.Tác nhân hệ thống
Hệ thống gồm 2 tác nhân chính: Quản trị viên và Khách hàng.

Hình 1: Tác nhân của hệ thống

23


3.2.Usecase tổng quan

Hình 2 : Usecase tổng quan
3.4. Usecase cho từng chức năng cụ thể
•Usecase quản lý loạn đồ ăn

Hình 3 : Usecase quản lý loại đồ ăn


24


•Usecase quản lý đơn hàng

Hình 4: Usecase quản lý đơn hàng
•Usecase quản lý đồ ăn

Hình 5: Usecase quản lý đồ ăn
• Usecase xem thông tin dồ ăn

Hình 6: Usecase xem thông tin đồ ăn
25


×