Đồ án Website kinh doanh thuốc thú y và thủy sản

Mục tiêu của Web site kinh doanh thuốc thú y và thủy sản là tạo ra thêm một cầu nối giữa công ty và các đại lý của công ty nên đa số những khách hàng truy cập vào Web site là có nhu cầu mua hàng. Vì thế trang web phải thỏa mãn các yêu cầu sau:

- Hiển thị danh mục các mặt hàng của công ty để khách hàng có thể xem, lựa chọn và đặt mua.

- Cung cấp chức năng tìm kiếm thông tin các mặt hàng theo tên và công dụng của mặt hàng từ hệ thống để đặt mua các mặt hàng dễ dàng, nhanh chóng.

- Sau khi khách hàng lựa chọn xong những mặt hàng cần đặt mua thì hệ thống phải có chức năng hiển thị đơn đặt hàng để khách hàng nhập vào những thông tin cần thiết, tránh những đòi hỏi hay yêu cầu những thông tin quá nhiều từ phía khách hàng, tạo cảm giác thoải mái, riêng tư cho khách hàng.

Nếu khách hàng không là đại lý của công ty thì hệ thống sẽ cung cấp thông tin giới thiệu các mặt hàng. Nếu khách hàng thực sự muốn mua các mặt hàng của công ty thì hệ thống sẽ cung cấp cho khách hàng giao diện liện hệ với công ty. Tùy theo số lượng mua các mặt hàng mà khách hàng có thể được công ty cung cấp hay được giới thiệu một đại lý của công ty ở cùng địa bàn của khách hàng (nếu khách hàng mua lẻ) để mua hàng.

 

doc107 trang | Chia sẻ: netpro | Lượt xem: 1800 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đồ án Website kinh doanh thuốc thú y và thủy sản, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
nguồn PHP: Ví dụ: Ví dụ: Ví dụ: echo “Cách thứ ba”; Ví dụ: Tuy nhiên cách đầu tiên được ưa chuộng và dùng phổ biến hơn. III.2. PHP CÓ THỂ LÀM GÌ? PHP chủ yếu đặt trọng tâm trên kịch bản phía máy phục vụ vì thế bạn có thể làm bất cứ điều gì mà các chương trình CGI khác có thể làm được, như tập hợp dữ liệu hình thức, tạo ra nội dung các trang động hoặc gửi và nhận các cookie. Nhưng PHP có thể làm được nhiều hơn thế. Cụ thể là kịch bản PHP có thể sử dụng trên ba nền chính sau: Kịch bản phía máy phục vụ: đây là nền mục tiêu chính và truyền thống nhất đại diện cho PHP. Bạn cần phải có ba thứ để làm việc ở nền này, đó là bộ phân tích cú pháp PHP (CGI hoặc môđun máy phục vụ), một máy phục vụ Web và một trình duyệt Web. Bạn cần phải chạy máy phục vụ Web với một kết nối đến PHP đã được cài đặt. Bạn có thể truy cập chương trình PHP xuất ra với trình duyệt Web để nhìn trang PHP trả về từ máy phục vụ. Kịch bản dòng lệnh: bạn có thể tạo một kịch bản PHP để chạy nó mà không cần bất cứ máy phục vụ hoặc trình duyệt Web nào. Bạn chỉ cần sử dụng bộ phân tích cú pháp PHP trong cách này. Viết các ứng dụng GUI phía máy khách: PHP thì không có khả năng để viết rất tốt các ứng dụng windows nhưng nếu PHP của bạn tuyệt vời và có thể sử dụng những đặc trưng thuận lợi của PHP trên các ứng dụng phía máy khách bạn cũng có thể sử dụng PHP-GIK để viết các chương trình. PHP có thể sử dụng trên tất cả các hệ điều hành chính, bao gồm Linux, nhiều hệ Unix khác nhau, Microsoft Windows, Mac OS X, RISC OS, …PHP cũng hỗ trợ cho hầu hết các máy phục vụ Web hiện nay như là Apache, Microsoft Internet Information Server, Personal Web Server, … Vì thế với PHP, bạn có thể tự do chọn lựa một hệ điều hành và một máy phục vụ Web. Hơn thế nữa, bạn cũng có thể chọn cách lập trình thủ tục hoặc lập trình hướng đối tượng hoặc trộn lẫn cả hai. PHP không hạn chế trong việc xuất ra trang HTML. PHP có khả năng bao gồm xuất ra các dạng hình ảnh, các tệp PDF và thậm chí cả phim ảnh dưới dạng Flash. Bạn cũng có thể dễ dàng xuất ra mọi kiểu văn bản như là XHTML và bất kỳ tệp XML khác. PHP có thể tự động sinh ra các tệp dạng này và lưu chúng trong hệ thống tệp thay vì in nó ra, nội dung động được định dạng nhanh từ phía máy phục vụ. Một đặc trưng mạnh và quan trọng nhất trong PHP là nó hỗ trợ nhiều hệ cơ sơ dữ liệu. Viết một trang Web cho phép cập nhật cơ sở dữ liệu thì đơn giản đến lạ thường. Các cơ sở dữ liệu được hỗ trợ gồm: MySQL, MS-SQL, Oracle(OCI7 và OCI8), PostgreSQL, mSQL,…PHP hỗ trợ ODBC vì thế bạn có thể kết nối bất kỳ cơ sở dữ liệu nào hổ trợ tiêu chuẩn quốc tế này. PHP còn hỗ trợ cho việc giao tiếp với các dịch vụ sử dụng các giao thức như là POP3, HTTP, COM, SNMP, NNTP,… Khi sử dụng PHP trong nền thương mại điện tử, bạn sẽ tìm thấy nhiều hàm hữu dụng cho các chương trình thanh toán trên mạng. Cuối cùng nhưng không kém phần quan trọng, chúng ta có được nhiều mở rộng thú vị khác, các hàm cho bộ máy tìm kiếm mnoGoSearch, các hàm cổng IRC, nhiều tiện ích nén, chuyển đổi, thông dịch,… III.3. CÁC KIỂU DỮ LIỆU III.3.1. KIỂU BOOLEAN Đây là kiểu đơn giản nhất, nó có thể có hai giá trị TRUE hoặc FALSE. Ví dụ: <? $foo=True; ?> III.3.2. KIỂU SỐ NGUYÊN (INTEGER) Số nguyên là một số thuộc tập hợp Z = {…,-2,-1,0,1,2,…}. Số nguyên có thể xác định trong hệ thập phân, hệ bát phân, hệ thập lục phân, số có dấu (- hoặc +). Nếu bạn sử dụng hệ bát phân thì phải ký hiệu thêm phía trước số là 0 (zero), hệ thập lục phân thì phải ký hiệu thêm phía trước số là 0x. Ví dụ: <? $a = 1234; //số thập phân. $b = -123; // số âm $c = 0123; // số viết dưới hệ bát phân (giá trị thập phân là 83) $d = 0x1A; // số viết dưới hệ thập lục phân (giá trị thập phân là 26) ?> III.3.3. KIỂU SỐ THỰC (FLOAT POINT NUMBERS) Ví dụ: <? $a = 1.234; $b = 1.2e3; $c = 7E-10; ?> III.3.4. KIẺU CHUỖI (STRINGS) Một chuỗi là một nhóm các ký tự. Có ba cách khác nhau để xác định một chuỗi trong PHP: - Dùng dấu nháy đơn (single qouted): Đây là cách dễ nhất để xác định một chuỗi là nó bao quanh trong hai dấu nháy đơn (‘’). Ví dụ: <? echo ‘Dấu nháy đơn.’; ?> - Dùng dấu nháy kép (double qouted): Chuỗi được bao quanh trong hai dấu nháy kép (“ ”). Ví dụ: <? echo “Dấu nháy kép.”; ?> - Dùng Heredoc. Một cách khác để giới hạn chuỗi là sử dụng cú pháp Heredoc (“<<<”). Ví dụ: <? $str = <<<EOD Sử dụng Heredoc là cách thứ ba. EOD; echo $str; ?> Các chuỗi có thể được nối với nhau bằng cách sử dụng toán tử chấm ‘.’. III.3.5. KIỂU MẢNG (ARRAY) Có thể tạo mảng trong PHP với hàm array(). Cú pháp: array([Từ khóa =>] giá trị,…) Từ khóa: có thể là một số nguyên hay một chuỗi. Ví dụ: <? $arr = array(“foo” => “bar”, 12 => true); echo $arr[“foo”]; //bar echo $arr[12]; //1 ?> Có thể thêm một phần tử vào mảng đã khai báo với cú pháp: $arr[từ khóa] = giá trị; $arr[] = giá trị; Đồng thời cũng có thể xóa một phần tử ra khỏi mảng hay thậm chí xóa cả mảng đã tạo bằng cách sử dụng hàm unset(). Ví dụ: <? $arr = array(“foo” => “bar”, 12 => true); $arr[] = 56; // sẽ được PHP hiểu như $arr[13] = 56; $arr[“x”] = 24; // thêm một phần tử vào mảng với từ khóa là “x” unset($arr[“foo”]); // xóa phần tử có từ khóa là “foo”. unset($arr); Xóa mảng $arr ?> PHP còn hỗ trợ cả mảng hai chiều và ba chiều. Ví dụ: $two_dimen = array( array(“a”, “b”, 10), array(“c”, “d”, 15), array(“e”, “f”, 20) ); // mảng hai chiều. $three_dimen = array(array(array(“a”, “b”, 10), array(“c”, “d”, 15), array(“e”, “f”, 20) ), array(array(“a”, “b”, 25), array(“c”, “d”, 30), array(“e”, “f”, 35) ), array(array(“a”, “b”, 40), array(“c”, “d”, 45), array(“e”, “f”, 50) ) ); // mảng ba chiều. III.4. BIẾN PHP quy định một biến được biểu diễn bắt đầu bằng dấu $, theo sau là tên biến. Tên biến hợp lệ phải bắt đầu bằng một ký tự hoặc dấu gạch dưới ( _ ), theo sau nữa là bất kỳ ký tự hay số. Ví dụ: <? $var = “Dang”; $Var = “Trinh”; echo “$var, $Var”; // Dang, Trinh ?> III.4.1 MỘT SỐ BIẾN TOÀN CỤC ĐƯỢC TẠO SẴN TRONG PHP $GLOBALS: chứa một tham chiếu đến mỗi biến mà nó có giá trị hiện hành trong phạm vi toàn cục của kịch bản. Các từ khóa của mảng này là tên của các biến toàn cục. $GLOBALS tồn tại từ PHP 3. $_SERVER: tập hợp các biến bởi máy phục vụ Web. Giống như mảng $HTTP_SERVER_VARS cũ. $_GET: các biến cung cấp đến kịch bản hiện tại bằng HTTP GET. Giống như mảng $HTTP_GET_VARS cũ. $_POST: các biến cung cấp đến kịch bản hiện tại bằng HTTP POST. Giống như mảng $HTTP_POST_VARS cũ. $_COOKIE: các biến cung cấp đến kịch bản hiện tại bằng HTTP cookies. Giống như mảng $HTTP_COOKIE_VARS cũ. $_FILES: các biến cung cấp đến kịch bản hiện tại bằng HTTP post file uploads. Giống như mảng $HTTP_POST_FILES cũ. $_ENV: các biến cung cấp đến kịch bản môi trường hiện tại. Giống như mảng $HTTP_ENV_VARS cũ. $_REQUEST: các biến cung cấp đến kịch bản hiện tại của bất kỳ người sử dụng nhập vào máy, mà bởi vậy không thể tín nhiệm nó. Giống như mảng $HTTP_ENV_VARS cũ. $_SESSION: các biến mà nó được đăng ký phiên làm việc của kịch bản hiện hành. Giống như mảng $HTTP_SESSION_VARS cũ. III.4.2 PHẠM VI BIẾN PHP coi một biến có một giới hạn. Để sử dụng một biến toàn cục (global) trong hàm ta cần khai báo lại. Nếu không giá trị của biến sẽ được coi như biến cục bộ trong hàm. Ví dụ: <? $a = 1; $b = 2; function Sum() { global $a, $b; $b = $a +$b; } Sum(); echo $b; ?> Khi có khai báo globlal trong hàm, hai biến $a, $b được hiểu là những biến toàn cục, nếu không nó chỉ được coi là biến bên trong hàm Sum(). Điểm này khác với ngôn ngữ C. Một cách khác để dùng biến toàn cục trong một hàm là ta dùng mảng $GLOBAL, ví dụ trên được viết lại như sau: <? $a = 1; $b = 2; function Sum() { $GLOBAL[“b”] = $GLOBAL[“a”] + $GLOBAL[“b”] ; } Sum(); echo $b; ?> Một đặc trưng quan trọng khác của phạm vi biến là khai báo biến với từ khóa static. Một biến được khai báo static chỉ tồn tại trong phạm vi cục bộ của hàm. Ví dụ: <? Function Test() { static $a = 0; echo $a; $a++; } ?> Biến $a sẽ không mất đi giá trị sau khi thực hiện lời gọi hàm Test() mà sẽ được tăng lên 1 sau mỗi lần gọi hàm Test(). III.4.3 CÁC BIẾN BÊN NGOÀI PHẠM VI PHP -HTML Forms: Một form được viết bằng HTML, hành động của form này gọi một script PHP, thông tin trên form sẽ có giá trị trong script. Có nhiều cách để truy cập các thông tin này. Ví dụ: Form HTML đơn giản: Name: Script PHP có thể lấy giá trị trong trường Name của Form HTML bằng các cách sau: <? // có giá trị từ PHP 4.1.0. print $_POST[‘name’]; print $_REQUEST[‘name’]; // có giá trị từ PHP 3. print $HTTP_POST_VARS[‘name’]; //Nếu khai báo register_globals = on trong tập tin php.ini thì cách sau đây sẽ có giá trị. print $name; ?> Ngoài ra cũng còn một số cách khác để lấy các thông tin trong form HTML như sử dụng hàm addslashes(),… - Các biến trong IMAGE SUBMIT: Khi dùng một ảnh để thực hiện submit thay vì sử dụng nút submit như trên. Ví dụ: Khi người dùng click chuột lên ảnh, form tương ứng sẽ truyền đến máy phục vụ thêm hai biến là sub_x và sub_y. Những biến này sẽ lưu giữ tọa độ mà người dùng click chuột trên ảnh. - HTTP Cookies. PHP hỗ trợ HTTP Cookies trông suốt như định nghĩa của Netcape’s Spec. Cookie lưu trữ thông tin máy vận hành của trình duyệt ở xa để theo dõi hoặc nhận biết khi người sử dụng truy cập trở lại. Có thể thiết lập cookie bằng cách sử dụng hàm SetCookie(). III.5. HẰNG SỐ PHP định nghĩa sẵn một số hằng số sau: _FILE_: Tên của tệp script đang được thực hiện. _LINE_: Số dòng của mã script đang được thực hiện trong tệp script hiện tại. _PHP_VERSION_: Phiên bản của PHP. TRUE, FALSE E_ERROR: Báo hiệu có lỗi. E_PARSE: Báo lỗi sai khi biên dịch. E_NOTICE: Một vài sự kiện có thể là lỗi hoặc không. E_ALL: Tất cả lỗi và cảnh báo Có thể định nghĩa một hằng số bằng hàm define(). Ví dụ: <? define(“CONSTANT”, “Hello World.”); echo CONSTANT; // Hello World. ?> III.6. BIỂU THỨC Biểu thức là một phần quan trọng trong PHP. Phần lớn mọi thứ bạn viết đều được coi là một biểu thức. Điều này có nghĩa là mọi thứ đều có giá trị. Một dạng cơ bản nhất của biểu thức là bao gồm các biến và hằng số. PHP hỗ trợ ba kiểu giá trị cơ bản nhất: số nguyên, số thực, và chuỗi. Ngoài ra còn có mảng và đối tượng. Mỗi kiểu giá trị này đều có thể gán cho các biến hay làm giá trị trả về cho các hàm. Có thể thao tác với các biến trong PHP tương tự như trong ngôn ngữ C. Ví dụ: $b = $a = 5; $c = $a++; $e = $d = ++$b; $f = double($d++); $g = double(++$e); $h = $g += 10; III.7. CẤU TRÚC ĐIỀU KHIỂN Cũng giống như trong các ngôn ngữ lập trình khác, PHP cũng có các cấu trúc điều khiển. III.7.1. CÂU LỆNH IF If (điều kiện) { các lệnh thực hiện; } III.7.2. CÂU LỆNH IF …ELSE If (điều kiện) { các lệnh thực hiện; } else { các lệnh thực hiện; } III.7.3. CÂU LỆNH IF …ELSEIF If (điều kiện 1) { các lệnh thực hiện; } elseif (điều kiện 2) { các lệnh thực hiện; } else { các lệnh thực hiện; } III.7.4. VÒNG LẶP WHILE while (điều kiện) { các lệnh thực hiện; } hoặc while (điều kiện): các lệnh thực hiện; endwhile; III.7.5. VÒNG LẶP DO .. WHILE do { các lệnh thực hiện; } while (điều kiện) Vòng lặp loại này thực hiện ít nhất một lần. III.7.6. VÒNG LẶP FOR for (biểu thức 1; biểu thức 2; biểu thức 3) { các lệnh thực hiện; } III.7.7. VÒNG LẶP FOREACH Vòng lặp foreach được hỗ trợ từ PHP 4. foreach (biểu_thức_kiểu_mảng as $value) { các lệnh thực hiện; } hoặc foreach (biểu_thức_kiểu_mảng as $key => $value) { các lệnh thực hiện; } III.7.8. BREAK VÀ CONTINUE - break: kết thúc thực hiện cấu trúc lặp hiện thời (for, foreach, while, do ..while và switch ). - continue: Bỏ qua vòng lặp hiện tại và tiếp tục thực hiện vòng lặp tiếp theo. III.7.9. CÂU LỆNH SWITCH switch (biến) { case trường hợp 1: … break; case trường hợp 2: … break; case trường hợp 3: … break; default: } III.8. HÀM Một hàm có thể được định nghĩa bằng cách sử dụng có pháp sau: function Tên_hàm (đối_số_1, đối_số_2, … đối_số_n) { Các công việc; } III.8.1. TRUYỀN THEO THAM TRỊ Ví dụ: function takes_array ($input) { echo “$input[0] + $input[1] = ”. $input[0] + $input[1]; } III.8.2. TRUYỀN THEO THAM BIẾN Ví dụ: function add_some_extra (&$string) { $string .= ‘and something extra.’ } $str = ‘This is a string,’; add_some_extra ($str) ; echo $str; // ‘This is a string, and something extra.’ III.8.3. ĐỐI SỐ CÓ GIÁ TRỊ MẶC ĐỊNH Ví dụ: function makecoffee ($type= “cappucino”) { return “Making a cup of $type.\n”; } echo makecoffee(); echo makecoffee(“espresso”); Kết quả thu được: Making a cup of cappucino. Making a cup of espresso. Chú ý: Khi sử dụng hàm có nhiều đối số và có đối số có giá trị mặc định, các đối số này phải nằm về phía bên phải nhất trong danh sách các đối số. III.8.4. HÀM CÓ GIÁ TRỊ TRẢ VỀ Giá trị được trả về bằng cách sử dụng lệnh tùy chọn trả về return. Có thể trả về bất kỳ giá trị nào, không thể trả về nhiều giá trị riêng lẻ nhưng có thể trả về một mảng các giá trị. Ví dụ: function small_numbers() { return array(0,1,2); } Để trả về một tham trỏ, bạn cần có dấu & ở cả khai báo hàm lẫn ở giá trị trả về. function &return_reference() { return &$someref; } $newref = &return_reference() ; III.8.5. HÀM BIẾN PHP hỗ trợ khái niệm hàm biến. Nghĩa là nếu tên một biến có gắn kèm theo dấu ngoặc đơn, PHP sẽ tìm hàm có cùng tên với giá trị của biến đó và thực hiện hàm đó. Ví dụ: <? Function foo() { echo “In foo()\n”; } function bar($arg = ‘’) { echo “In bar(); argument was ‘$arg’.\n”; } function echoit($string) { echo $string; } $func = ‘foo’; $func(); // Câu lệnh này gọi hàm foo() $func = ‘bar’; $func(‘test’); // Câu lệnh này gọi hàm bar() $func = ‘echoit’; $func(‘test’); // Câu lệnh này gọi hàm echoit() ?> III.8.6. CÁC TOÁN TỬ Các toán tử số học: + - * / % Các toán tử logic: And (&&), Or ( || ), Not ( ! ) , Xor Các toán tử thao tác với bit: And (&), Or ( | ), Not ( ~ ) , Xor ( ^ ), dịch trái (>). Các toán tử so sánh: Mô tả Ký hiệu Bằng = = Bằng và cùng kiểu (1) = = = Không bằng ! = Không bằng Không bằng và không cùng kiểu (2) ! = = Nhỏ hơn < Lớn hơn > Nhỏ hơn hoặc bằng < = Lớn hơn hoặc bằng > = Hai toán tử (1), (2) ở trên chỉ có trong phiên bản PHP 4. Toán tử điều khiển lỗi: @ - khi đứng trước một biểu thức trì các lỗi của biểu thức sẽ bị bỏ qua và lưu trong $php_errormsg. Toán tử thực thi: ` ` - PHP sẽ thực hiện nội dung nằm trong hai dấu ` như một lệnh shell. Trả về giá trị là kết quả trực hiện lệnh. III.9. LỚP VÀ ĐỐI TƯỢNG Lớp là tập hợp các biến và các hàm làm việc với các biến này. Một lớp được định nghĩa sử dụng cú pháp như sau: Ví dụ: <?php class Cart { var $items; //số mặt hàng trong giỏ mua hàng function add_item ($artnr, $num) //Thêm mặt hàng vào giỏ mua hàng { $this->items[$artnr] += $num; } function remove_item ($artnr, $num)//Loại bỏ mặt hàng ra khỏi giỏ mua hàng { if ($this->items[$artnr] > $num) { $this->items[$artnr] -= $num; return true; } else { return false; } } } ?> Lớp là một kiểu dữ liệu, vì vậy có thể tạo một biến có kiểu này bằng cách sử dụng toán tử new. Ví dụ: <?php $cart = new Cart; $cart->add_item("10", 1); $another_cart = new Cart; $another_cart->add_item("0815", 3); ?> Lớp có thể được mở rộng bằng những lớp khác. Lớp mới thu được có tất cả các biến và hàm của lớp thành phần. Thực hiện kế thừa lớp bằng cách sử dụng từ khóa extends. Ví dụ: class Named_Cart extends Cart { var $owner; function set_owner ($name) { $this->owner = $name; } } Hàm khởi tạo lớp (contructors) của lớp được gọi tự động khi tạo mới một biến kiểu lớp bằng từ khóa new.Tuy nhiên, các hàm khởi tạo của lớp cha sẽ không được gọi khi hàm khởi tạo của lớp con được gọi. III.10. THAM CHIẾU Trong PHP, tham chiếu có nghĩa là truy cập nội dung của biến giống nhau bằng tên biến khác nhau. Không giống với con trỏ trong ngôn ngữ C, con trỏ thì tượng trưng cho bảng các bí banh. Trong PHP, tên biến và nội dung của biến là khác nhau, vì vậy cùng một nội dung có thể có nhiều tên khác nhau. Tham chiếu trong PHP cho phép bạn tạo ra hai biến có cùng nội dung. Ví dụ: $a = & $b; Tham chiếu truyền giá trị bằng tham chiếu. Thực hiện bằng cách tạo một hàm cục bộ và truyền cho hàm giá trị được tham chiếu. Vídụ: function foo (&$var) { $var++; } $a=5; foo ($a); Kết quả: biến $a bằng 6. Giá trị trả về của một hàm bằng tham chiếu rất tiện khi bạn muốn sử dụng hàm để tìm một giá trị trong một phạm vi nào đó. Ví dụ: function foo (&$var) { $var =& $GLOBALS[“baz”]; } foo($bar); Khi muốn loại bỏ mối liên kết giữa tên biến và giá trị của biến thì có thể sử dụng hàm unset(). Ví dụ: $a = 1; $b =& $a; unset ($a); III.11. MỘT SỐ HÀM TRONG PHP HỔ TRỢ CHO CƠ SƠ DỮ LIỆU ORACLE Như đã đề cập ở trên, PHP là một ngôn ngữ lập trình hỗ trợ rất nhiều hệ cơ sở dữ liệu. Tuy nhiên, trong khuôn khổ của đồ án chỉ có thể trình bày các vấn đề của PHP liên quan đến hệ quản trị cơ sơ dữ liệu Oracle. PHP hỗ trợ từ phiên bản Oracle 7 trở về sau. Nhằm đáp ứng theo yêu cầu của đồ án, hệ cơ sở dữ liệu Oracle được sử dụng ở đây là Oracle 8i. PHP có sự hỗ trợ mở rộng cho phiên bản Oracle 8i nhờ nó sử dụng Oracle8 Call-Interface. Sự mở rộng này thì linh hoạt hơn nhiều so với sự mở rộng trong Oracle chuẩn. Nó hỗ trợ thêm về các vấn đề ràng buộc các biến cục bộ và toàn cục trong PHP đến liên quan đến Oracle, hỗ trợ đầy đủ các kiểu dữ liệu LOB, FILE và ROWID của Oracle và cho phép sử dụng các biến định nghĩa từ người dùng. PHP cung cấp cho người lập trình với hệ cơ sở dữ liệu Oracle một số lượng lớn các hàm định nghĩa sẵn, phần sau đây sẽ đề cập đến một số hàm thường xuyên sử dụng. OCILogon(): thiết lập một kết nối với Oracle. Cú pháp: int OCILogon ( string username, string password [, string db]) Hàm này trả về một đặc điểm nhận dạng kết nối cần thiết cho hầu hết các cuộc gọi OCI khác. Tùy chọn tham số thứ ba có thể chứa tên thể hiện của Oracle cục bộ hoặc tên khai báo trong tệp tnsnames.ora mà bạn muốn kết nối. Nếu tham số thứ ba không được xác định PHP sử dụng các biến môi trường ORACLE_SID hoặc TWO_TASK để xác định cơ sở dữ liệu để kết nối. OCINLogon(): thiết lập một kết nối mới với Oracle. Cú pháp: int OCINLogon ( string username, string password [, string db]) OCIPLogon(): kết nối đến cơ sở dữ liệu Oracle sử dụng một kết nối bền bỉ. Cú pháp: int OCIPLogon ( string username, string password [, string db]) OCILogoff(): ngắt kết nối với Oracle. Cú pháp: bool OCILogOff ( int connection) OCIParse(): Phân tích cú pháp một truy vấn và trả về một lệnh. Cú pháp: int OCIParse ( int conn, string query) Hàm này trả về nhận dạng lệnh nếu query hợp lệ hoặc FALSE nếu query sai. Đối số query trong hàm có thể là bất kỳ câu lệnh SQL nào hoặc khối PL/SQL. OCIExecute(): Thực thi một lệnh Cú pháp: int OCIExecute ( int statement [, int mode]) OCIExecute thực thi lệnh sau khi nó được phân tích cú pháp bằng hàm OCIParse(). Tùy chọn mode cho phép nhận biết kiểu thực hiện (mặc định là OCI_COMMIT_ON_SUCCESS). Nếu không muốn lệnh tự động commit thì nhận dạng là OCI_DEFAULT. Hàm này trả về TRUE nếu thành công hoặc FALSE nếu thất bại. OCICommit(): Hoàn thành các giao dịch chưa hoàn tất. Cú pháp: bool OCICommit ( int connection) Hàm này trả về TRUE nếu thành công hoặc FALSE nếu thất bại. OCIRollback() Cú pháp: bool OCIRollback ( int connection) Quay lại các thao tác đã đi qua. Hàm này trả về TRUE nếu thành công hoặc FALSE nếu thất bại. OCIFetch() Hàm này mang hàng kế tiếp vào trong vùng nhớ đệm kết quả (cho câu lệnh SELECT). Cú pháp: bool OCIFetch ( int statement) OCIFetchInto() Cú pháp: int OCIFetchInto ( int stmt, array &result [, int mode]) Hàm này mang hàng kế tiếp vào trong mảng result (cho câu lệnh SELECT). Nó sẽ ghi đè lên nội dung trước đó trong result. Tham số mode cho phép thay đổi đối xử mặc định. Bạn có thể nhận biết nhiều hơn một cờ bằng cách đơn giản là cộng thêm vào nó vào. Ví dụ: OCI_ASSOC+OCI_RETURN_NULLS Một vài cờ cần biết: OCI_ASSO: trả về một mảng liên kết. OCI_NUM: trả về một mảng số bắt đầu với số 0 (zero). OCI_RETURN_NULLS: trả về các cột rỗng. OCI_RETURN_LOBS: : trả về giá trị của một LOB. OCIFetchStatement() Cú pháp: int OCIFetchStatement ( int stmt, array & variable) Hàm này mang tất cả các hàng từ kết quả vào trong mảng được định nghĩa. Nó còn trả về số hàng đã lấy được. OCIResult() Cú pháp: mixed OCIResult ( int statement, mixed column) Hàm OCIResult() trả về giá trị cột của hàng đã lấy. Nó còn trả về mọi thứ như chuỗi ngoại trừ các kiểu trừu tượng (như FILEs, LOBs và ROWIDs). OCIRowCount() Cú pháp: int OCIRowCount ( int statement) Hàm này trả về số hàm làm ảnh hưởng, ví dụ như thực hiện lệnh cập nhật. Đây là hàm không báo cho bạn biết số hàng mà bạn đã chọn lựa (select). OCINumCols(): trả về số cột trong lệnh. Cú pháp: int OCINumCols ( int stmt) OCIFreeStatement() Cú pháp: bool OCIFreeStatement ( int stmt) Hàm này có chức năng giải phóng tài nguyên liên kết với các lệnh. Hàm này trả về TRUE nếu thành công hoặc FALSE nếu thất bại. OCIError() Cú pháp: array OCIError ( [int stmt|conn|global]) Hàm này trả về lỗi cuối cùng mà nó tìm thấy. Nếu không có lỗi hàm sẽ trả về giá trị FALSE. Hàm sẽ trả về lỗi như một mảng liên kết. Trong mảng này, code chỉ ở chỗ mã nguồn bị lỗi của oracle và message là chuỗi lỗi của oracle. Phần II. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG Chương I. PHÂN TÍCH YÊU CẦU ĐỀ TÀI I.1. CHỨC NĂNG Web site hổ trợ kinh doanh Thuốc thú y và thủy sản của Công ty TNHH Quốc Minh là một web site nhằm mục đích giới thiệu rộng rãi thông tin các mặt hàng thú y và thủy sản đến người sử dụng với các thông tin chi tiết mặt hàng cũng như giá cả một cách chính xác. Nó còn phải giúp ban quản lý công ty quản lý phần lớn công việc kinh doanh thông qua mạng Internet, các nhân viên của công ty có thể làm việc từ xa. Khách hàng là đại lý của công ty phải được đặt mua các mặt hàng thông qua Web site này. Web site phải có những chức năng sau: - Quản lý thông tin khách hàng, nhà cung cấp nguyên liệu, nguyên liệu, thuốc do công ty sản xuất ra. - Hiển thị danh sách các mặt hàng thú y và thủy sản theo từng loại (gồm hình ảnh, giá cả, …). - Hổ trợ khách hàng đặt mua hàng qua mạng. - Quản lý phiếu nhập nguyên liệu, phiếu xuất nguyên liệu cho sản xuất thuốc và lập hóa đơn cho khách hàng. - Cung cấp khả năng tìm kiếm theo nhu cầu của khách hàng như theo tên thuốc, công dụng của thuốc,… - Cho phép quản lý đơn đặt hàng, quản lý hóa đơn và thanh toán các khoản của khách hàng. - Thống kê doanh số, công nợ, tình hình nhập nguyên liệu, tình hình sản xuất, tình hình bán thuốc. - Thống kê tồn kho nguyên liệu và thuốc theo từng loại. - Cho phép quản trị hệ thống từ xa. I.2. YÊU CẦU ĐẶT RA CHO HỆ THỐNG I.2.1. VỀ MẶT THIẾT BỊ VÀ PHẦN MỀM Một máy tính làm phục vụ. Hệ điều hành hỗ trợ cho chương trình là Windows 2000 server. Hệ quản trị cơ sở dữ liệu được dùng là Oracle 8i. Web site được thiết kế bằng ngôn ngữ lập trình PHP 4. Các phần mềm khác dùng để lập trình và thiết kế Web site. I.2.2. YÊU CẦU WEB SITE Web site gồm có hai phần: Phần dành cho khách hàng Mục tiêu của Web site kinh doanh thuốc thú y và thủy sản là tạo ra thêm một cầu nối giữa công ty và các đại lý của công ty nên đa số những khách hàng truy cập vào Web site là có nhu cầu mua hàng. Vì thế trang web phải thỏa mãn các yêu cầu sau: - Hiển thị danh mục các mặt hàng của công ty để khách hàng có thể xem, lựa chọn và đặt mua. - Cung cấp chức năng tìm kiếm thông tin các mặt hàng theo tên và công dụng của mặt hàng từ hệ thống để đặt mua các mặt hàng dễ dàng, nhanh chóng. - Sau khi khách hàng lựa chọn xong những mặt hàng cần đặt mua thì hệ thống phải có chức năng hiển thị đơn đặt hàng để khách hàng nhập vào những thông tin cần thiết, tránh những đòi hỏi hay yêu cầu những thông tin quá nhiều từ phía khách hàng, tạo cảm giác thoải mái, riêng tư cho khách hàng. Nếu khách hàng không là đại lý của công ty thì hệ thống sẽ cung cấp thông tin giới thiệu các mặt hàng. Nếu khách hàng thực sự muốn mua các mặt hàng của công ty thì hệ thống sẽ cung cấp cho khách hàng giao diện liện hệ với công ty. Tùy theo số lượng mua các mặt hàng mà khách hàng có thể được công ty cung cấp hay được giới thiệu một đại lý của công ty ở cùng địa bàn của khách hàng (nếu khách hàng mua lẻ) để mua hàng. Phần dành cho nhân viên của công ty Là những người làm chủ ứng dụng, có quyền kiểm soát mọi hoạt động của hệ thống. Nhân viên của công ty được cấp một tên đăng nhập và mật khẩu để đăng nhập vào hệ thống thực hiện những chức năng của mình. Nếu như quá trình đăng nhập thành công thì nhân viên có thể thực hiện những chức năng phù hợp với chức vụ và địa vị của họ trong công ty. Những chức năng chính của hệ thống dành cho nhân viên của công ty như sau: - Quản lý cập nhật (thêm, xóa, sửa) các mặt hàng thú y và thủy sản, nguyên liệu, nhà cung cấ

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

  • docXây dựng Website hỗ trợ quản lý kinh doanh thuốc thú y và thủy sản trên mạng internet.doc