Nhập môn PHP
Ngày nay Thương mại điện tử trở thành một ngành kinh tế mũi nhọn trên thế giới và đã xuất hiện nhiều trung tâm thương mại và thị trường chứng khoán lớn trên thế giới.
Lời mở đầu
˜™ & —–
Ngày nay Thương mại điện tử đã trở thành một ngành kinh tế mũi nhọ n trên
thế giới và đã xuất hiện nhiều trung tâm thương mại và thị trường chứng khoán
lớn trên thế giới.
Nhờ vào sự phát triển của các phương tiện truyền thông, đặc biệt là sự phát
triển của tin học đã tạo điều kiện cho mọi người có thể giao tiếp với nhau một
cách nhanh chóng và dễ dàng hơn thông qua các dịch vụ Internet. Vì là một
môi trường truyền thông rộng khắp thế giới nên thông tin có thể được giới
thiệu tới từng người một cách nhanh chóng và thuận lợi. Chính vì vậy đã tạo
điều kiện thuận lợi cho Thương mại điện tử thông qua Internet và Thương mại
điện tử nhanh chóng trở nên phổ biến trên thế giới, trở thành một công cụ rất
mạnh mẽ để bán hàng và quảng cáo hàng hoá của các nhà cung cấp. Đối với
khách hàng, có thể có thể lựa chọn, so sánh hàng hoá phù hợp cả về loại hàng
hoá, dịch vụ giá cả, chất lượng và phương thức giao hàng cho khách hàng.
Có rất nhiều ý kiến cho rằng Thương mại điện tử là sự thay đổi lớn nhất
trong kinh doanh kể từ sau cuộc cách mạng công nghiệp.
Thương mại điện tử không chỉ mở ra những cơ hội kinh doanh mới, những
sản phẩm và dịch vụ mới, những ngành nghề kinh doanh mới mà bản thân nó
thực sự là một phương thức kinh doanh mới: Phương thức kinh doanh điện tử.
Thương mại điện tử chuyển hoá các chức năng kinh doanh, từ nghiên cứu thị
trường và sản xuất sản phẩm đến bán hàng, dịch vụ sau bán hàng từ phương
thức kinh doanh truyền thống đến phương thức kinh doanh điện tử.
Trong khuôn khổ bài thực tập này, chúng em đã xây dựng một website giới
thiệu sản phẩm qua mạng (E – Catalogue), cụ thể là website giới thiệu về mặt
hàng bánh kẹo.
Website được thiết kế bằng ngôn ngữ kịch bản PHP và hệ quản trị cơ sở dữ
liệu MySQL.
Vì thời gian và trình độ có hạn nên bài báo cáo sẽ không tránh khỏi sai sót.
Mong thầy thông cảm , châm chước và giúp đỡ chúng em.
Sinh viên thực hiện
Đỗ Nam Khánh
Vũ Mạnh Linh
1
Chương I: Mục đích của đề tài
Mục đích:
Đề tài thiết kế Web giúp tìm hiểu và thực hiện trang Web động với ngôn
ngữ kịch bản PHP, các kết nối với hệ quản trị cơ sở dữ liệu MySQL, lấy dữ
liệu để hiển thị trên trang Web và cập nhật dữ liệu trở lại.
Đề tài của chúng em là website giới thiệu sản phẩm bánh kẹo nên chức năng
chính của website sẽ gồm những nội dung cơ bản sau:
- Giới thiệu về cửa hàng
- Giới thiệu về các sản phẩm mà cửa hàng kinh doanh
- Cho phép nhân viên của cửa hàng có thể cập nhật thông tin về sản phẩm
một cách nhanh chóng.
Chương II:
Tìm hiểu về ngôn ngữ kịch bản PHP và hệ quản
trị CSDL MySQL
Trong thực tế, ứng dụng Web luôn tồn tại hai loại là trang Web tĩnh và
động. Trang Web tĩnh là trang HTML không kết nối cơ sở dữ liệu. Ngược lại,
trang web động là trang Web có kết nối cơ sở dữ liệu. Điều này có nghĩa là mỗi
khi trang Web động được nạp lại (refresh), dữ liệu trình bày trên trang Web
được đọc từ cơ sở dữ liệu.
Do yêu cầu của đề tài thuần túy là giới thiệu sản phẩm, không có các phép
toán phức tạp để xử lý thông tin, mà chủ yếu chỉ là các phép toán truy tìm, trích
lọc, sắp xếp thông tin tương đối đơn giản. Các dữ liệu của đề tài thuộc loại đơn
giản, có thể được tổ chức một cách dễ dàng thành cơ sở dữ liệu bởi một hệ
quản trị cơ sở dữ liệu do đó em chọn ngôn ngữ thực hiện chương trình là PHP
và hệ quản trị cơ sở dữ liệu MySQL.
1. Giới thiệu và sử dụng PHP
1.1 - Giới thiệu
a) Lịch sử ra đời:
Năm 1995, Rasmus Lerdorf tạo ra PHP nhằm giải quyết việc viết lặp đi lặp
lại cùng đoạn mã khi tạo các trang. Ban đầu tác giả chỉ có ý định tạo bộ phân
giải đơn giản để thay thế các thẻ lệnh trong file HTML bằng các đoạn mã lệnh
viết bằng C.
Ngôn ngữ 10/2000 03/2002 Tỉ lệ phát triển Thị phần
Php(php,php3,phtml) 157,470 7,549,230 4694% 30%
Asp 3,166,710 11,958,185 278% 48%
Jsp 24,435 413,827 1594% 2%
Cfm (ColdFusion) 936,223 4,950,133 429% 20%
2
Theo PC World 7.2002 (117)
b) PHP là gì?
PHP được viết từ Hypertext Preprocessor, đây là một ngôn ngữ kịch bản mã
nguồn mở sử dụng cho mục đích chung, đặc biệt thích hợp cho phát triển Web
và có thể nhúng vào HTML. Hiện nay được sử dụng rất rộng rãi.
Mã PHP được thực thi ở phía Server, khi trình duyệt của người dùng truy
cập một trang web có chứa một đoạn mã PHP thì trình duyệt nhận được trang
kết quả đã xử lý từ Web server, người dùng sẽ không thể biết được đoạn mã
viết gì. Mã PHP được bao trong cặp dấu hoặc . Tập tin PHP có
phần mở rộng là .php hoặc .php3
PHP tương tự JSP và ASP với tập thẻ lệnh dùng cho trang HTML. Điểm
đặc biệt là PHP được phát triển hoàn toàn cho nền tảng web, chính vì vậy , mà
các ứng dụng viết bằng PHP rất ngắn gọn so với VBScript hay JSP. Đây cũng
chính là điểm mạnh của PHP so với Perl.
Cú pháp PHP mượn từ nhiều ngôn ngữ khác như C, Java, Perl... PHP có thể
giao tiếp với nhiều hệ CSDL như MySQL, MS Access, Sybase, Oracle và cả
Microsoft SQL. Không chỉ có khả năng thao tác CSDL, PHP còn có nhiều khả
năng khác như IMAP, SNMP, LDAP, XML... PHP chạy trên hầu hết các nền
tảng hệ thống. Trình máy chủ phân giải mã lệnh PHP có thể tải về miễn phí từ
trang web chính thức của PHP.
Có lẽ yếu tố hấp dẫn nhất của PHP là nó hoàn toàn miễn phí. Với máy tính
cấu hình vừa phải chạy Linux, cài đặt Apache, PHP và MySQL, bạn sẽ có máy
chủ có thể phục vụ được nhiều ứng dụng web tương đối. Toàn bộ chi phí hầu
như chỉ là thời gian bạn bỏ ra để cài đặt các phần mềm.
PHP được xem là một thay thế cho Perl. PHP không thể làm được nhiều
như Perl, thế nhưng chính sự hạn chế này làm cho PHP dễ học và dễ dùng.
Nhiều nhà phát triển dùng kết hợp cả hai : Perl dùng cho những tác vụ chạy
bên dưới còn PHP dùng cho việc xử lý bề mặt. Komodo của Active State Corp
là công cụ miễn phí dùng để phát triển trang PHP.
1.2 - Sử dụng PHP
a) Thẻ PHP
Có 4 loại khác nhau của thẻ PHP:
- Kiểu Short: là thẻ mặc định mà các nhà lập trình PHP thường sử dụng.
- Kiểu định dạng XML: thẻ này có thể sử dụng với văn bản dạng XML.
- Kiểu Script: trong trường hợp muốn sử dụng PHP như một script tương
tự như khai báo Javascript hay VBScript
3
echo “PHP script”;
- Kiểu ASP:
b) Gọi hàm trong PHP
Để gọi hàm trong PHP, khai báo tương tự như gọi hàm trong các ngôn ngữ
lập trình khác, hầu hết các hàm khi gọi cần truyền tham số và giá trị trả về.
VD: Gọi hàm date()
c) Truy cập biến Form
Thông thường khi cần lấy dữ liệu của người dùng nhập, chúng ta sẽ dùng
thẻ form trong trang web nhằm ràng buộc tất cả các thẻ input, selec, textarea...
Dữ liệu đến từ script đều là biến PHP, chúng ta có thể nhận biết chúng bằng
cách sử dụng dấu $ trước tên biến. Có hai cách để truy cập dữ liệu trên form
thông qua biến.
- Để lấy giá trị của các thẻ trong form theo dạng POST:
$_POST[‘tên_thẻ’]
- Để lấy giá trị của các thẻ trong form theo dạng GET: $_GET[‘tên_thẻ’]
d) Khai báo biến:
PHP Engine không cần yêu cầu khai báo biến trước khi sử dụng, tuy nhiên
nên tập thói quen khai báo và khởi tạo giá trị ban đầu cho biến trước khi sử
dụng chúng.
e) Gán giá trị cho biến
Để gán giá trị cho biến, nếu biến đó chưa khai báo trước đó, biến này được
coi như vừa khai báo và khởi tạo. Trong trường hợp biến đã khai báo, biến này
chỉ thay đổi giá trị.
VD:
f) Kiểu dữ liệu của biến trong PHP
PHP hỗ trợ 5 kiểu dữ liệu
- Interger: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là số.
- Double: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là số thực.
- String: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là chuỗi, ký tự.
4
- Array: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là mảng có các phần
tử cùng kiểu dữ liệu.
- Object: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là đối tượng của lớp.
g) Toán tử trong PHP
* Các phép toán số học
Toán tử Tên Ví dụ
+ Cộng $a + $b;
- Trừ $a - $b;
* Nhân $a*$b;
/ Chia $a/$b;
% Modulo $a%$b;
* Các phép toán gán kết hợp
Toán tử Sử dụng Tương tự
+= $a+=$b $a=$a + $b;
++ $a++ $a=$a + 1;
-= $a-=$b $a=$a - $b;
-- $a-- $a=$a-1;
*= $a*=$b $a=$a*$b;
/= $a/=$b $a=$a/$b;
%= $a%=$b $a=$a%$b;
.= $a.=$b $a=$a.$b;
* Các phép logic
Phép Ký hiệu Sử dụng Ý nghĩa
toán
! NOT !$a Phép toán phủ định
&& AND $a && Trả về true nếu cả hai biến có giá trị true.
$b Ngược lại là false
|| OR $a || $b Trả về true nếu $a hay $b hay cả hai biến có
giá trị true
and AND $a and Trả về true nếu cả hai biến có giá trị true.
$b Ngược lại là false
or OR $a or $b Trả về true nếu $a hay $b hay cả hai biến có
giá trị true
* Các phép toán so sánh
Phép toán Sử dụng Ý nghĩa so sánh
== $a= =$b $a bằng $b
5
=== $a = = = $b $a bằng và cùng kiểu dữ liệu với $b
!= $a!=$b $a không bằng $b
$a$b $a không bằng $b
< $a= $a>=$b $a lớn hơn hoặc bằng $b
h) Kiểm tra biến trong PHP
- is_array(): Kiểm tra biến là array hay không.
- is_double(): Kiểm tra biến là double hay không.
- is_float(): Kiểm tra biến là float hay không.
- is_real(): Kiểm tra biến là real hay không.
- is_long(): Kiểm tra biến là long hay không.
- is_int(): Kiểm tra biến là int hay không.
- is_interger(): Kiểm tra biến là integer hay không.
- is_string(): Kiểm tra biến là string hay không.
- is_object(): Kiểm tra biến là object hay không.
- isset(): Nếu biến tồn tại hàm trả về giá trị true, ngược lại trả về false.
- empty(): Cho phép kiểm tra biến tồn tại và không rỗng, có chiều dài khác 0
trả về true, ngược lại là false.
Để sử dụng tất cả các hàm trên, cần phải truyền vào hàm biến PHP dưới
dạng tham số.
i) Phát biểu có điều khiển
• Phát biểu If: Phát biểu if với một điều kiện, nếu điều kiện là true thì
khối lệnh trong phát biểu If sẽ được thực hiện, điều kiện được khai
báo trong dấu ()
VD: $a = 10;
$b=6;
if($a>$b)
echo $a+$b;
Khối lệnh trong bất kỳ phát biểu điều khiển nào cũng có thể sử dụng
dấu { và }. Có nghĩa là nếu khối lệnh trong phát biểu lớn hơn 1 thì phải sử
dụng hai dấu trên.
• Phát biểu Else: phát biểu else luôn là trường hợp ngược lại của phát
biểu if với một điều kiện, nếu điều kiện là true thì khối lệnh trong
phát biểu if sẽ được thực hiện, ngược lại khối lệnh trong phát biểu
else sẽ được thực hiện.
VD: $a = 10;
$b=6;
if($a>$b)
echo $a+$b;
else
$b=$a+1;
6
Tương tự như trong trường hợp phát biểu if, nếu khối lệnh trong phát
biểu điều khiển else có hơn 1 dòng lệnh thì sẽ phải khai báo sử dụng dấu { và
}.
• Phát biểu Switch: tương tự như phát biểu if, nhưng trong trường hợp
có nhiều hơn hai tùy chọn cụ thể cho phép quyết định.
VD: switch($diem)
{
case “5”: echo “Điểm trung bình”;
break;
case “7”: echo “Điểm khá”;
break;
case “10”: echo “Điểm giỏi”;
break;
deafault: echo “Nhập lại”;
}
Nếu đúng điều kiện case, cần khai báo phát biểu break nhằm thoát ra khỏi
phát biểu switch. Trong trường hợp không khai báo break trong mỗi phát biểu
case, nếu thỏa mãn điều kiện trong case nhưng PHP vẫn tiếp tục thực hiện tiếp
các phát biểu case sau đó.
• Phát biểu While: phát biểu vòng lặp đơn giản nhất trong PHP là vòng
lặp while cho phép bạn thực thi khối lệnh trong while cho đến khi
điều kiện của while là true như cú pháp
While (điều kiện)
{
câu lệnh thực hiện;
}
• Phát biểu do ... while: tương tự như while nhưng kiểm tra điều kiện
sau khi thực hiện khối lệnh.
do
{
câu lệnh thực hiện;
}
while (điều kiện)
• Phát biểu vòng lặp for: tương tự như trong phát biểu while, có thể sử
dụng vòng lặp for với 1 giới hạn chỉ định.
for (giá trị khởi đầu; điều kiện giới hạn; giá trị lặp của vòng lặp
for)
{
khối lệnh thực hiện;
}
j) Lưu trữ và truy vấn dữ liệu bằng PHP
• Mở file bằng PHP:
o fopen(tên file, chế độ mở): mở file
o fputs(), fwrite(): ghi file
o fclose(): Đóng file
7
o feof(): Nhận giá trị true nếu con trỏ ở cuối file
o file_exists(): Kiểm tra file có tồn tại
o filesize(): kiểm tra dung lượng của file
o unlink(): xóa file
Chế độ mở file:
Mode Diễn giải
R Mở dưới dạng Read-Only
r+ Mở dưới dạng Read-Write
w Mở dưới dạng Write-Only
w+ Mở dưới dạng Write-Read. Nếu file này tồn tại, nội dung sẽ bị xóa,
nếu không tồn tại chúng sẽ được tạo ra.
a Mở dưới dạng append dữ liệu (write), nếu nội dung tồn tại, bắt đầu
cuối cùng của nội dung, dữ liệu sẽ được ghi tiếp phần cuối, trong
trường hợp file không tồn tại chúng sẽ được tạo ra.
a+ Mở dưới dạng append dữ liệu (write & read), nếu nội dung tồn tại, bắt
đầu phần đầu của nội dung, dữ liệu sẽ được ghi tiếp phần đầu, trong
trường hợp file không tồn tại chúng sẽ được tạo ra.
• Thiết lập kết nối cơ sở dữ liệu
Để kết nối cơ sở dữ liệu MySQL, cần cung cấp tên Server hay IP (có thể là
localhost) của máy chứa cơ sở dữ liệu MySQL, Username và Password để
đăng nhập làm việc trên cơ sở dữ liệu được mở.
- Thiết lập kết nối:
Int mysql_pcconnect(“serverbname”, “username”, “password”);
if(!$db)
{
echo “Không kết nối được với CSDL”);
}
hoặc
$link = mysql_connect(“servername”, “username”, “password”)
or die(“Không kết nối được với CSDL”);
- Mở một CSDL:
mysql_select_db(“database name”);
hoặc
mysql_select_db(“database name”, $link);
- Đóng kết nối cơ sở dữ liệu: mysql_close(database_connection);
- Truy vấn cơ sở dữ liệu:
Int mysql_query(string sql);
Int mysql_query(string sql, [int db_connect]);
Int mysql_query(string database, string sql, [int db_connect]);
- Số lượng mẩu tin: mysql_num_rows(); Cho biết số lượng mẩu tin câu
truy vấn trả về
8
- Truy vấn dữ liệu:
Int mysql_fetch_array($result);
Mysql_fetch_object($result);
- Dung lượng của tập mẩu tin: int mysql_free_result(int $result);
2. Giới thiệu MySQL
2.1 - MySQL là gì?
MySQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở dành cho máy tính cá
nhân. MySQL còn đang trên đà phát triển, nhưng các lệnh cơ bản của SQL có
thể thử nghiệm được trên cơ sở dữ liệu MySQL.
MySQL là cơ sở dữ liệu được sử dụng cho các ứng dụng Web có quy mô
vừa và nhỏ. Tuy không phải là một cơ sở dữ liệu lớn nhưng chúng cũng có
trình giao diện trên Windows hay Linux, cho phép người dùng có thể thao tác
các hành động liên quan đến cơ sở dữ liệu. Cũng giống như các hệ cơ sở dữ
liệu khác, khi làm việc với cơ sở dữ liệu MySQL bạn đăng ký kết nối, tạo cơ sở
dữ liệu, quản lý người dùng, phân quyền sử dụng, thiết kế đối tượng Table của
cơ sở dữ liệu và xử lý dữ liệu.
2.2 - Nơi cung cấp MySQL?
Có thể download tại website www.mysql.com qua mạng Internet phần mềm
hệ quản trị cơ sở dữ liệu server/client đến các phần mềm tiện nghi và các phần
mềm giao diện đẹp mắt và tiện dụng.
2.3 – Các kiểu dữ liệu trong cơ sở dữ liệu MySQL
a) Loại dữ liệu numeric
Loại Range Bytes Diễn giải
Tinyint -127 ->128 hay 0..255 1 Số nguyên rất nhỏ
Smallint -32768 -> 32767 hay 2 Số nguyên nhỏ
0..65535
Mediumint -8388608 -> 838860 hay 3 Số nguyên vừa
0..16777215
Int -231 -> 231 hay 0..232-1 4 Số nguyên
Bigint -263 -> 263 hay 0..264-1 8 Số nguyên lớn
Float phụ thuộc số thập phân Số thập phân dạng
Single hay Double
Float(M,D) ±1.175494351E-38 4 Số thập phân dạng
±3.40282346638 Single
Double(M,D) ±1.7976931348623157308 8 Số thập phân dạng
±2.2250738585072014E-308 Double
Float(M[,D]) Số chấm động lưu
dưới dạng char
9
b) Loại dữ liệu Date and Time
Loại Range Diễn giải
Date 1000-01-01 Date trình bày dưới dạng YYYY-mm-
dd
Time 00:00:00 Time trình bày dưới dạng hh:mm:ss
23:59:59
DateTime 1000-01-01 Date và Time trình bày dưới dạng
00:00:00 YYY-mm-dd hh:mm:ss
9999-12-31
23:59:59
TimeStamp[(M)] 1970-01-01 TimeStamp trình bày dưới dạng
00:00:00 YYYY-mm-dd hh:mm:ss
Year[(2|4)] 1970-2069 Year trình bày dưới dạng 2 số hay 4 số
1901-2155
Trình bày đại diện của TimeStamp
Loại Hiển thị
TimeStamp YYYYMMDDHHMMSS
TimeStamp(14) YYYYMMDDHHMMSS
TimeStamp(12) YYMMDDHHMMSS
TimeStamp(10) YYMMDDHHMM
TimeStamp(8) YYYYMMDD
TimeStamp(6) YYMMDD
TimeStamp(4) YYMM
TimeStamp(2) YY
(y = năm, m = tháng, d = ngày)
c) Loại dữ liệu String
Loại Range Diễn giải
Char 1-255 ký tự Chiều dài của chuỗi lớn nhất 255 ký
tự
Varchar 1-255 ký tự Chiều dài của chuỗi lớn nhất 255 ký
tự
Tinyblob 28-1 Khai báo cho Field chứa kiểu đối
tượng nhị phân cỡ 255 ký tự
Tinytext 28-1 Khai báo cho Field chứa kiểu chuỗi
cỡ 255 ký tự
Blob 216-1 Khai báo cho Field chứa kiểu blob
cỡ 65535 ký tự
Text 216-1 Khai báo cho Field chứa kiểu chuỗi
dạng văn bản cỡ 65535 ký tự
Mediumblob 224-1 Khai báo cho Field chứa kiểu blob
10
vừa khoảng 16777215 ký tự
24
Mediumtext 2 -1 Khai báo cho Field chứa kiểu chuỗi
dạng văn bản vừa khoảng 16777215
ký tự
Longblob 232-1 Khai báo cho Field chứa kiểu blob
lớn khoảng 4294967295 ký tự
Longtext 232-1 Khai báo cho Field chứa kiểu blob
vừa khoảng 4294967295 ký tự
2.4 – Phát biểu SQL
Tạo cơ sở dữ liệu:
Create Database
Create
Phát biểu SQL thao tác dữ liệu
- SELECT (truy vấn mẩu tin)
- INSERT (Thêm mẩu tin)
- UPDATE (Cập nhật dữ liệu)
- DELETE (Xóa mẩu tin)
a) Phát biểu Select
Select
From
Where
[Group by ]
[Having ]
[Order by ]
[Limit fromNumber | To Number]
b) Phát biểu Insert
Insert into []
Values (data_values)
c) Phát biểu Update
Update
Set =, [=]
[where ]
d) Phát biểu Delete
Delete from
Where
Một số hàm thông dụng trong MySQL
11
Hàm AVG: Hàm trả về giá trị bình quân của cột hay trường trong câu truy
vấn
VD: select AVG(Amount)
From tblOrder
Hàm MIN: Hàm trả về giá trị nhỏ nhất của cột hay trường trong câu truy
vấn
VD: select MIN(Amount)
From tblOrder
Hàm MAX: Hàm trả về giá trị lớn nhất của cột hay trường trong câu truy
vấn
VD: select MAX(Amount)
From tblOrder
Hàm Count: Hàm trả về số lượng mẩu tin trong câu truy vấn
VD: select Count(*)
From tblOrder
Hàm Sum: Hàm trả về tống các giá trị của trường, cột trong câu truy vấn
VD: select SUM(Amount)
From tblOrder
Hàm CurDate(): hàm trả về ngày, tháng, năm hiện hành của hệ thống
VD: select curdate() as ‘Ngay hien tai’
Hàm CurTime(): Hàm trả về giờ phút giây hiện hành của hệ thống
VD: select curtime() as ‘Thoi gian’
12
Chương III: Phân tích hệ thống
Phân tích hệ thống theo nghĩa chung nhất là khảo sát nhận diện và phân
định các thành phần của một phức hợp và chỉ ra các mối liên hệ giữa chúng.
Theo nghĩa hẹp phân tích hệ thống là giai đoạn 2, đi sâu vào các thành phần
của hệ thống.
Phân tích hệ thống bao gồm việc phân tích về chức năng xử lý và phân tích
về dữ liệu (dữ liệu là đối tượng xử lý)
Phân tích hệ thống về xử lý
Sự phân tích hệ thống về mặt xử lý nhằm mục đích lập mô hình xử lý của
hệ thống, để trả lời câu hỏi “Hệ thống làm gì?”, tức là đi sâu vào câu hỏi “Làm
gì?” mà gạt bỏ câu hỏi “Làm như thế nào?” chỉ diễn tả mục đích, bản chất của
quá trình xử lý mà bỏ qua các yếu tố về thực hiện cài đặt (là các yếu tố về vật
lý).
Giai đoạn này gọi là giai đoạn thiết kế logic, phải được thực hiện một cách
hoàn chỉnh để chuẩn bị cho giai đoạn thiết kế vật lý.
Website giới thiệu bánh kẹo
Phục vụ Khách hàng Phục vụ quản trị
Tìm kiếm Xem Thống kê
sản phẩm Xem theo thông tin Quản lý Quản lý về danh
theo yêu nhóm sản chi tiết người sản phẩm mục sản
cầu phẩm từng sản dùng phẩm hiện
phẩm có
Biểu đồ phân cấp chức năng
13
Yêu cầu tìm kiếm Yêu cầu xem thống kê
Xem thông tin KQ thống kê
Website giới
KHÁCH NHÂN
thiệu sản phẩm
HÀNG VIÊN
bánh kẹo
Đáp ứng yêu cầu
Đáp ứng yêu cầu
Kết quả tìm kiếm Yêu cầu cập nhật
Biểu đồ Luồng dữ liệu mức khung cảnh
Yêu cầu xem thông tin
Đáp ứng yêu cầu
KHÁCH Phục vụ
HÀNG khách
Kết quả tìm kiếm
hàng
Yêu cầu tìm kiếm
NSD Mặt hàng Loại hàng Đơn vị tính
Cập nhật
mặt hàng Cập nhật loại hàng Cập nhật
Đơn vị tính
Cập nhật
NSD Yêu cầu cập nhật
Phục vụ Đáp ứng yêu cầu
quản trị NHÂN
VIÊN
Yêu cầu thống kê
KQ thống kê
Biểu đồ Luồng dữ liệu mức đỉnh
14
TÌM KIẾM
Yêu cầu
tìm kiếm KQ Mặt hàng
tìm kiếm
Yêu cầu
xem theo
loại sản XEM THEO
KHÁCH sản phẩm LOẠI SẢN Loại hàng
HÀNG PHẨM
Đáp ứng
Yêu cầu
Đơn vị tính
Yêu cầu xem
chi tiết XEM CHI
TIẾT SẢN
PHẨM
Biểu đồ luồng dữ liệu mức dưới đỉnh
(Chức năng phục vụ khách hàng)
Yêu cầu cập nhật
sản phẩm
QUẢN LÝ Đơn vị tính
SẢN PHẨM
NHÂN
VIÊN
Thông tin
đáp ứng
Yêu cầu Mặt hàng
thống kê
Loại hàng
THỐNG KÊ
BÁO CÁO
KQ thống kê
Thông tin đáp
QUẢN LÝ ứng
Người sử dụng
NGƯỜI NHÂN
DÙNG VIÊN
Yêu cầu cập
nhập người dùng
Biểu đồ luồng dữ liệu mức dưới đỉnh
(Chức năng phục vụ quản trị)
15
Mô hình quan hệ thực thể liên kết
Chương IV: Thiết kế chương trình
I. Thiết kế cơ sở dữ liệu:
Bảng chứa thông tin mặt hàng
Bảng chứa thông tin nhóm mặt hàng
16
Bảng chứa thông tin Đơn vị tính
Bảng chứa thông tin người dùng
Câu lệnh SQL tạo cơ sở dữ liệu:
# Tạo bảng tbldonvitinh
CREATE TABLE /*!32300 IF NOT EXISTS*/ tbldonvitinh (
MaDVT tinyint(3) unsigned NOT NULL auto_increment,
TenDVT varchar(255) NOT NULL DEFAULT '' ,
PRIMARY KEY (MaDVT)
);
# Tạo bảng tblmathangxuat
CREATE TABLE /*!32300 IF NOT EXISTS*/ tblmathangxuat (
MaMatHangXuat tinyint(3) unsigned NOT NULL auto_increment,
TenHang varchar(255) NOT NULL DEFAULT '' ,
MaNhomMatHang tinyint(3) unsigned NOT NULL DEFAULT '0' ,
MaDVT tinyint(4) NOT NULL DEFAULT '0' ,
Anh varchar(255) NOT NULL DEFAULT '' ,
GhiChu varchar(255) ,
TinhTrang tinyint(3) unsigned NOT NULL DEFAULT '1' ,
DonGia int(10) unsigned NOT NULL DEFAULT '0' ,
NgayNhap date NOT NULL DEFAULT '0000-00-00' ,
PRIMARY KEY (MaMatHangXuat)
);
# Tạo bảng tblnhommathang
CREATE TABLE /*!32300 IF NOT EXISTS*/ tblnhommathang (
MaNhomMatHang tinyint(3) unsigned NOT NULL auto_increment,
TenNhomMatHang varchar(255) NOT NULL DEFAULT '' ,
PRIMARY KEY (MaNhomMatHang)
);
17
# Tạo bảng tblnsd
CREATE TABLE /*!32300 IF NOT EXISTS*/ tblnsd (
MaNSD tinyint(3) unsigned NOT NULL auto_increment,
TenTruyNhap varchar(50) NOT NULL DEFAULT '' ,
MatKhau varchar(50) NOT NULL DEFAULT '' ,
Quyen tinyint(3) unsigned NOT NULL DEFAULT '0' ,
PRIMARY KEY (MaNSD)
);
Hướng dẫn sử dụng chương trình
- Ngôn ngữ sử dụng là PHP, webserver là IIS
- Cài đặt PHP
- Cài đặt hệ quản trị CSDL MySQL
- Sau khi cài xong thì chạy tập tin mysqlfront.exe (phần mềm client kết nối
với MySQL)
-Nhấp Connect sẽ hiện ra cửa sổ => Tools =>Creat Database => Đặt tên là
gioithieusp. Sau đó nhấp vào Tab Query => Load SQL => Chỉ đến tập tin
banhkeo.sql => Chọn Run
- Cài đặt IIS => Start => Control Panel => Add or Remove Programs =>
Add/Remove Windows Components => Internet Infomation Services (IIS)
18
Các giao diện chương trình
1) Trang chủ
19
2) Trang liệt kê theo nhóm sản phẩm
Khi người dùng chọn chức năng xem theo nhóm sản phẩm thì các mặt hàng
thuộc nhóm sản phẩm đó sẽ được liệt kê như hình dưới đây:
3) Trang xem chi tiết sản phẩm
Khi muốn xem thông tin chi tiết về sản phẩm nào đó, khách hàng chỉ cần
nhấp vào link “Chi tiết”
20