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.. Chương I: Mục ñích của
Trang 1Lờ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
Trang 2Chươ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
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
Trang 3và 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 <?php ?> 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
<? 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
Trang 4c) 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ị
- 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ự
Trang 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
&& AND $a &&
Trang 6= = = $a = = = $b $a bằng và cùng kiểu dữ liệu với $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ì 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
Trang 7Tươ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
• 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;
} 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)
o fopen(tên file, chế ñộ mở): mở file
o fputs(), fwrite(): ghi file
o fclose(): Đóng file
Trang 8o 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
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ở
$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ề
Trang 9- 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
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
±3.40282346638
4 Số thập phân dạng Single
Double(M,D) ±1.7976931348623157308
±2.2250738585072014E-308
8 Số thập phân dạng Double
dưới dạng char
Trang 10b) 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
Date và Time trình bày dưới dạng YYY-mm-dd hh:mm:ss
Year trình bày dưới dạng 2 số hay 4 số
Trình bày ñại diện của TimeStamp
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
Trang 11vừa khoảng 16777215 ký tự Mediumtext 224-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 <database_name>
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)
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>]
Set <column>=<value>, [<column>=<value>]
[where <restrictive conditions>]
Trang 12Hà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
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’
Trang 13Chươ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ị
Quản lý sản phẩm
Thống kê
về danh mục sản phẩm hiện
Phục vụ Khách hàng
Website giới thiệu bánh kẹo
Quản lý người dùng
Trang 14NHÂ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
Phục vụ khách hàng
Phục vụ quản trị
Biểu ñồ Luồng dữ liệu mức ñỉnh
Mặt hàng Loại hàng NSD
Cập nhật loại hàng
Cập nhật mặt hàng
Đơn vị tính
Cập nhật Đơn vị tính
Trang 15KHÁCH
HÀNG
TÌM KIẾM
XEM THEO LOẠI SẢN PHẨM
XEM CHI TIẾT 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
NHÂN VIÊN
Yêu cầu cập nhập người dùng
Thông tin ñáp ứng
Yêu cầu cập nhật
sản phẩm
Thông tin ñáp ứng Yêu cầu
thống kê
KQ thống kê
Biểu ñồ luồng dữ liệu mức dưới ñỉnh
(Chức năng phục vụ quản trị)
Trang 16Mô 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