1
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.
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,4707,549,2304694%30%
Asp
3,166,71011,958,185278%
48%
Jsp
24,435413,8271594%
2%
Cfm (ColdFusion)
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.
<? echo “Đây là kiểu Short”; ?>
- Kiểu ñịnh dạng XML: thẻ này có thể sử dụng với văn bản dạng XML.
<?php echo “Đây là kiểu ñịnh dạng với 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
4
<script language = ‘php’>
echo “PHP script”;
</script>
- Kiểu ASP:
<%
echo “Đây là kiểu ASP”;
%>
b) Gọi hàm trong PHP
echo “Total: $total”;
?>
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ự.
5
- 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;
Phép toán Sử dụng Ý nghĩa so sánh
= = $a= =$b $a bằng $b
6
= = = $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<$b $a nhỏ hơn $b
<= $a<=$b $a nhỏ hơn hoặc bằng $b
> $a>$b $a lớn hơn $b
>= $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ì
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;
• 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ề
9
- Truy vấn dữ liệu:
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
0 65535
2 Số nguyên nhỏ
Mediumint -8388608 -> 838860 hay
0 16777215
3 Số nguyên vừa
Int -2
31
-> 2
31
hay 0 2
32
-1 4 Số nguyên
Bigint -2
63
-> 2
63
hay 0 2
64
-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
±3.40282346638
4 Số thập phân dạng
Single
Double(M,D)
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 2
8
-1 Khai báo cho Field chứa kiểu ñối
tượng nhị phân cỡ 255 ký tự
Tinytext 2
8
-1 Khai báo cho Field chứa kiểu chuỗi
cỡ 255 ký tự
Blob 2
16
Create <object type>
<object_name>
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 <danh sách cột>
From <danh sách bảng>
Where <các ñiều kiện ràng buộc>
[Group by <tên cột/biểu thức trong Select>]
[Having <ñiều kiện bắt buộc của Group by>]
[Order by <danh sách cột>]
[Limit fromNumber | To Number]
b) Phát biểu Insert
Insert into <table_name> [<colum_name list>]
Values (data_values)
c) Phát biểu Update
Update <table_name>
Set <column>=<value>, [<column>=<value>]
[where <restrictive conditions>]
d) Phát biểu Delete
Delete from <table_name>
Where <condition>
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’
13
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ý. Biểu ñồ phân cấp chức năng
Phục vụ quản trịNHÂN
VIÊN
Website giới
thi
ệu sản phẩm
bánh kẹo
KHÁCH
HÀNG
K
ết quả t
ìm ki
ếm
Yêu c
ầu
tìm ki
ếm
Xem thông tin
Đáp ứng yêu cầu
Yêu c
ầu xem
th
ống k
ê
Yêu c
ầu cập nhật
Yêu c
ầu
th
ống k
ê
Đáp ứng yêu cầu
KQ th
ống k
ê
Yêu c
ầu xem thông tin
Đáp
ứng y
êu c
ầu
K
ết quả t
ìm ki
ếm
Yêu c
ầu
tìm ki
tìm kiếm
Yêu cầu xem
chi tiết
Yêu cầu
xem theo
loại sản
sản phẩm
Đáp ứng
Yêu cầu
KQ
tìm kiếm
Biểu ñồ luồng dữ liệu mức dưới ñỉnh
(Chức năng phục vụ khách hàng)
NHÂN
VIÊN
QUẢN LÝ
SẢN PHẨM
THỐNG K
Ê
BÁO CÁO
Đơn vị tính
Loại hàng
Người sử dụng
Mặt hàng
QUẢN LÝ
NGƯỜI
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 17
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
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)
19
Các giao diện chương trình
1) Trang chủ 20
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:
9) Trang quản lý Đơn vị tính 10) Trang quản lý người dùng
24
11) Trang thống kê sản phẩm
12) Trang thông báo lỗi khi người dùng không có quyền thao tác
25
Chương V: Viết Code
1) Đoạn mã kiểm tra ñăng nhập
<?php
@session_start();
require(" /include/csdl.inc"); //Nhúng tập tin kết nối CSDL
$sql="select * from tblnsd where
TenTruyNhap='".$_POST['txtUsername']."' and MatKhau
='".md5($_POST['txtPassword'])."'";
$result=mysql_query($sql,$link);
$totalRows=mysql_num_rows($result);
//Nếu tìm thấy NSD có tên truy nhập & mật khẩu trùng với tên & mật
$sql="select * from tblmathangxuat where TenHang like
'%".$_POST['txtTukhoa']."%' or DonGia='".$_POST['txtTukhoa']."'";
break;
case "tensp": //Tim theo ten san pham
$sql="select * from tblmathangxuat where TenHang like
'%".$_POST['txtTukhoa']."%'";
break;
case "gia": //Tim theo gia
$sql="select * from tblmathangxuat where DonGia between
'".$_POST['txtGiaBegin']."' and '".$_POST['txtGiaEnd']."'";
break;
}
$result=mysql_query($sql,$link); //Thực thi câu lệnh SQL