Đề tài Website giới thiệu về mặt hàng bánh kẹo

Phân tíchhệ 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ầncủamột phứchợp và chỉ ra cácmối liênhệ giữa chúng.

Theo nghĩahẹp phân tíchhệ 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íchhệ thống baogồm việc phân tíchvề chứcnăngxử lý và phân tích

vềdữliệu (dữliệu là đối tợng xửlý)

Phân tíchhệthống vềxửlý

Sự phân tíchhệ thốngvềmặtxử lý nhằmmục đíchlập mô hìnhxử lýcủa

hệ thống, để trảlời câuhỏi “Hệ thống làm gì?”,tức là đi sâu vào câuhỏi “Làm

gì?” màgạtbỏ câuhỏi “Làm như thế nào?” chỉ diễntảmục đích,bản chấtcủa

quá trìnhxử lý màbỏ qua cácyếutốvề thực hiện cài đặt (là cácyếutốvềvật lý).

pdf32 trang | Chia sẻ: maiphuongdc | Lượt xem: 2134 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đề tài Website giới thiệu về mặt hàng bánh kẹo, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hể 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 4 echo “PHP script”; - Kiểu ASP: <% echo “Đây là 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() <? echo “Hôm nay là: ”.date(“d/m/Y”); ?> 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: <?php $qtty=20; $price=10; $total=$qtty*$price; 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; -= $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 toán Ký hiệu Sử dụng Ý nghĩa ! NOT !$a Phép toán phủ định && AND $a && $b Trả về true nếu cả hai biến có giá trị true. 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 $b Trả về true nếu cả hai biến có giá trị true. 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 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ì 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; 7 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 8 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ề 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 0..65535 2 Số nguyên nhỏ Mediumint -8388608 -> 838860 hay 0..16777215 3 Số nguyên vừa 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 Float(M[,D]) Số chấm động lưu dưới dạng char 10 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 23:59:59 Time trình bày dưới dạng hh:mm:ss DateTime 1000-01-01 00:00:00 9999-12-31 23:59:59 Date và Time trình bày dưới dạng YYY-mm-dd hh:mm:ss TimeStamp[(M)] 1970-01-01 00:00:00 TimeStamp trình bày dưới dạng YYYY-mm-dd hh:mm:ss Year[(2|4)] 1970-2069 1901-2155 Year trình bày dưới dạng 2 số hay 4 số 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 11 vừ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 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 12 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’ 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ị Quản lý sản phẩm Thống kê về danh mục sản phẩm hiện có Xem theo nhóm sản phẩm Tìm kiếm sản phẩm theo yêu cầu Xem thông tin chi tiết từng sản phẩm Phục vụ Khách hàng Website giới thiệu bánh kẹo Quản lý người dùng 14 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 KQ thống kê Đáp ứng yêu cầu Biểu đồ Luồng dữ liệu mức khung cảnh Cập nhật NSD KHÁCH HÀNG NHÂN VIÊN Phục vụ khách hàng Phục vụ quản trị 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ếm 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 15 KHÁCH HÀNG TÌM KIẾM XEM THEO LOẠI SẢN PHẨM XEM CHI TIẾT SẢN PHẨM Mặt hàng Loại hàng Đơn vị tính Yêu cầu 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 DÙNG 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ị) 16 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 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 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) ); 18 # 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) 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: 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” 21 4) Trang đăng nhập Để truy cập chức năng quản lý, người dùng phải đăng nhập với tên truy cập và mật khẩu. Giao diện như hình dưới đây: 5) Trang thêm sản phẩm mới 22 6) Trang danh sách sản phẩm 7) Trang sửa thông tin sản phẩm 23 8) Trang quản lý Nhóm sản phẩm 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 khẩu nhập vào if($totalRows>0) { session_unset('login'); //Hủy session có tên login while($row=mysql_fetch_array($result)) { //Đăng ký các biến Session $_SESSION['username']=$row['TenTruyNhap']; $_SESSION['Quyen']=$row['Quyen']; $_SESSION['login']="Y"; echo '<meta http-equiv=refresh content="2;URL=index.php">'; echo 'Đăng nhập thành công!!!'; echo ''; echo 'Nhấp vào đây nếu trình duyệt không tự động chuyển'; } } else //Nếu ko tìm thấy => Thông báo lỗi { echo 'alert("Sai Tên truy cập hoặc Mật khẩu!\nVui lòng kiểm tra lại"); history.go(-1)'; } ?> 2) Đoạn mã trang kết quả tìm kiếm switch($_POST['cboTimTheo']) { case "all": //Tim theo ten hang & don gia (chon mac dinh) $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 26 $totalRows=mysql_num_rows($result); //Đếm tổng số bản ghi tìm thấy ........ //Trình bày kết quả tìm kiếm If($totalRows<0) //Nếu ko tìm thấy { echo "Không tìm thấy sản phẩm nào giống với từ khóa bạn nhập!"; } Else { ...... Echo ‘ STT Tên sản phẩm Đơn giá Tình trạng ’; #vòng lặp đọc từng bản ghi while ($row = mysql_fetch_array ($result)) { <a href="index.php?open=item_detail&MatHangID= "> đ/ <? # câu lệnh SQL lấy ra đơn vị tính tương ứng với từng sản phẩm $result1=mysql_query("select * from tbldonvitinh where MaDVT='".$row['MaDVT']."'",$link); while($row1=mysql_fetch_array($result1)) { echo $row1['TenDVT']; } ?> <?php if($row['TinhTrang']==0) echo 'Hết hàng'; else echo 'Còn hàng'; ?> ....... 3) Đoạn mã trang Cập nhật thông tin sản phẩm <?php @session_start(); //Khởi động session #Kiểm tra xem đã đăng nhập & có quyền truy cập trang này ko? if($_SESSION['login']!="Y" || $_SESSION['Quyen']==0) 27 echo 'Bạn không được phép truy cập trang này!'; else { require("../include/csdl.inc"); //chèn tập tin kết nối CSDL $edit=$_POST['SubFormItem']; //xử lý hành động switch($edit) { case "Thêm": //Trường hợp thêm sản phẩm $uploaddir = '..\\images\\uploads\\'; $uploadfile = $uploaddir.basename($_FILES['imgAnhMatHang']['name']); #Copy file ảnh lên thư mục uploads move_uploaded_file($_FILES['imgAnhMatHang']['tmp_name'], $uploadfile); #Thực hiện câu lệnh SQL thêm thông tin vào CSDL $sql="insert into tblmathangxuat(TenHang,MaNhomMatHang,MaDVT, Anh, GhiChu, DonGia,NgayNhap)"; $sql.=" values('".$_POST['txtTenMatHang']."','".$_POST['cboNhomMatHang']."',' ".$_POST['cboDonViTinh']."','".basename($_FILES['imgAnhMatHang']['nam e'])."','".$_POST['txtGhiChuMatHang']."','".$_POST['txtDonGiaMatHang' ]."','".date("Y-m-d")."')"; break; case "Cập nhật": //Trường hợp cập nhật sản phẩm $uploaddir = '..\\images\\uploads\\'; $uploadfile = $uploaddir.basename($_FILES['imgAnhMatHang']['name']); if($_FILES['imgAnhMatHang']['name']=="") { $sql_img=""; } else { $sql_img="Anh='".basename($_FILES['imgAnhMatHang']['name'])."'," ; move_uploaded_file($_FILES['imgAnhMatHang']['tmp_name'], $uploadfile); } #Câu lệnh SQL cập nhật thông tin sản phẩm $sql="Update tblmathangxuat set TenHang='".$_POST['txtTenMatHang']."', MaNhomMatHang='".$_POST['cboNhomMatHang']."',"; $sql.=" MaDVT='".$_POST['cboDonViTinh']."',".$sql_img."TinhTrang='".$_POST['c boTinhTrangMatHang']."', GhiChu='".$_POST['txtGhiChuMatHang']."',"; $sql.=" DonGia='".$_POST['txtDonGiaMatHang']."', NgayNhap='".$_POST['txtNgayNhap']."' where MaMatHangXuat='".$_POST['txtMaMatHangXuat']."'"; break; case "Xóa": //Trường hợp xóa sản phẩm #Nếu chưa chọn mặt hàng nào để xóa thì thông báo lỗi if(empty($_POST['MatHangID'])) { echo 'alert("Bạn chưa chọn Mặt Hàng nào!\nVui lòng kiểm tra lại"); 28 history.go(-1)'; } # Nếu ko thì else { if(is_array($_POST['MatHangID'])) { $id=""; #dùng vòng lặp để lấy mã sản phẩm (trong trường hợp xóa nhiều sản phẩm) while(list($key,$value) = each($_POST['MatHangID'])) { $id.=$value.','; } } #Định dạng các mã sp vừa lấy được cho phù hợp với câu lệnh SQL $id=str_replace(",","','", $id); #Câu lệnh SQL để xóa thông tin sản phẩm $sql="delete from tblmathangxuat where MaMatHangXuat IN ('".$id."')"; $del="select Anh from tblmathangxuat where MaMatHangXuat In ('".$id."')"; $del_result=mysql_query($del,$link); while($dodel=mysql_fetch_array($del_result)) { #Hàm xóa file ảnh trong thư mục uplo

Các file đính kèm theo tài liệu này:

  • pdfnhap_mon_php.pdf