Bài giảng Lập trình mã nguồn mở: Phần 2 - ĐH Sư phạm kỹ thuật Nam Định

99 9 0
Bài giảng Lập trình mã nguồn mở: Phần 2 - ĐH Sư phạm kỹ thuật Nam Định

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tiếp nội dung phần 1, Bài giảng Lập trình mã nguồn mở: Phần 2 cung cấp cho người học những kiến thức như: Cấu trúc và cú pháp của MySQL; Làm việc với MySQL và PHP; Xây dựng một số trang web kết hợp PHP và MySQL;...Mời các bạn cùng tham khảo!

CHƢƠNG 3: SỬ DỤNG PHP VỚI MYSQL 3.1 Cấu trúc cú pháp MySQL MySQL hệ thống sở liệu quan hệ Ý nghĩa MySQL lƣu trữ thơng tin vùng khác liên kết chúng lại với Có thể chứa thứ sở liệu Ví dụ nhƣ thơng tin liên quan đến ngƣời: chẳng hạn nhƣ first name, last name, address, phone… MySQL cho phép tạo thông tin riêng lẻ bảng khu vực chứa thơng tin thích hợp Trong MySQL bảng bao gồm trƣờng liệu MySQL hệ quản lý liệu quan hệ, cho phép tạo bảng thơng tin riêng, vùng thơng tin thích hợp Trong hệ thống sở liệu không quan hệ, tất thông tin đƣợc lƣu trữ bảng lớn tạo nên khó khăn việc xếp chép liệu Trong SQL, bảng bao gồm phần riêng biệt, biễu diễn thơng tin Ví dụ: Cho bảng bao gồm tên khách hàng, địa số ID, bảng khác bao gồm số ID, nơi ở, ….Vùng chung số ID, thông tin đƣợc lƣu trữ hai bảng riêng biệt liên kết với nơi mà số ID nhƣ 3.1.1 Các kiểu liệu MySQL Trƣớc thiết kế sở liệu MySQL, cần phải tham khảo số kiểu liệu thƣờng dùng, chúng bao gồm nhóm nhƣ: numeric, date and time string Trong thiết kế sở liệu, cần phải xem xét kiểu liệu cho cột Table cho phù hợp với liệu giới thực Điều có nghĩa chọn liệu cho cột Table, phải xem xét đến loại liệu cần lƣu trữ thuộc nhóm kiểu liệu nào, chiều dài nhƣ ràng buộc khác, nhằm khai báo cho phù hợp 1) Loại liệu numeric Kiểu liệu numeric bao gồm kiểu số nguyên kiểu số chấm động, trƣờng hợp liệu kiểu dấu chấm động cần phải rõ bao nhiều số sau đấu phần lẻ Kiểu liệu số nguyên Loại Range Bytes Diễn giải tinyint -127 ->128 hay … 255 Số nguyên nhỏ smallint -32768 ->32767 hay 65535 Số nguyên nhỏ mediumint -8388608 -> 838860 hay 16777215 Số nguyên vừa 158 -231 -> 231 - hay int Số nguyên Số nguyên lớn 32 … -1 -263 -> 263-1 hay … 264-1 bigint Kiểu liệu số chấm động Loại Range Diễn giải Bytes float Phụ thuộc số thập phân Float(M,D) ±1.175494351E-38 Số thập dạng Single hay Double Số ±3.40282346638 Double(M,D) thập phân dạng phân dạng Single ±1.7976931348623157308 Số ±2.2250738585072014E-308 thập Double Số chấm động lƣu dƣới dạng char Float(M[,D]) 2) Loại liệu Date and Time Kiểu liệu Date and Time cho PHP nhập liệu dƣới dạng chuỗi hay dạng số Loại Diễn giải Range Date 1000-01-01 Date trình by dƣới dạng yyyy-mm-dd Time -838:59:59 838:59:59 Time trình by dƣới dạng hh:mm:ss DateTime 1000-01-01 Date v Time trình by dƣới dạng yyyy-mm-dd 00:00:00 9999-12-31 23:59:59 hh:mm:ss TimeStamp[(M)] 1970-01-01 00:00:00 TimeStamp trình by dƣới dạng yyyy-mm-dd hh:mm:ss Year[(2|4)] 1970-2069 1901-2155 Year trình by dƣới dạng số hay số Đối với kiểu liệu TimeStamp, định dạng nhiều cách nhƣ trình bày bảng sau: Loại Hiển thị TimeStamp YYYYMMDDHHMMSS TimeStamp(14) YYYYMMDDHHMMSS TimeStamp(12) YYMMDDHHMMSS TimeStamp(10) YYMMDDHHMM TimeStamp(8) YYYYMMDD 159 TimeStamp(6) YYMMDD TimeStamp(4) YYMM TimeStamp(2) YY 3) Loại liệu String Kiểu liệu String chia làm ba loại, loại thứ char (chiều dài cố định) varchar (chiều dài biến thiên) Char cho phép nhập liệu dƣới dạng chuỗi với chiếu dài lớn chiều dài định nghĩa, nhƣng truy cập liệu Field có khai báo dạng này, cần phải xử lý khoảng trắng Điều có nghĩa khai báo chiều dài 10, nhƣng nhập chuỗi ký tự, MySQL lƣu trữ nhớ chiều dài 10 Ngƣợc lại với kiểu liệu Char Varchar, chiều dài lớn hất ngƣời dùng nhập vào chiều dài định nghĩa cho Field này, nhớ lƣu trữ chiều dài với chiều dài chuỗi nhập Nhƣ vậy, có nghĩa khai báo kiểu varchar 10 ký tự, nhƣng nhập ký tự, MySQL lƣu trữ chiều dài ký tự, ngồi ra, truy cập đến Field có kiểu liệu này, không cần phải giải khoảng trắng Loại thứ hai Text hay Blob, Text cho phép lƣu chuỗi lớn, Blob cho phép lƣu đối tƣợng nhị phân Loại thứ Enum Set Có thể tham khảo ba loại bảng 3.5 Loại Diễn giải Range char 1-255 characters Chiều dài chuỗi lớn 255 ký tự varchar 1-255 characters Chiều dài chuỗi lớn 255 ký tự (characters) tinyblob 28-1 characters Khai báo cho Field chứa kiểu đối tƣợng nhị phân cở 255 tinytext 28-1 characters Khai báo cho Field chứa kiểu chuỗi cở 255 16 blob -1 characters Khai báo cho Field chứa kiểu blob cở 65,535 text 216-1 characters Khai báo cho Field chứa kiểu chuỗi dạng văn cở 65,535 Mediumblob 224-1 characters Khai báo cho Field chứa kiểu blob vừa khoảng 16,777,215 Mediumtext 224-1 characters Khai báo cho Field chứa kiểu chuỗi dạng văn vừa khoảng 16,777,215 Longblob 232-1 characters Khai báo cho Field chứa kiểu blob lớn khoảng 4,294,967,295 Longtext 232-1 characters Khai báo cho Field chứa kiểu chuỗi dạng văn lớn khoảng 4,294,967,295 160 3.1.2 NULL/NOT NULL Đây trạng thái cột bảng cho phép chấp nhận giá trị NULL hay không Nếu ràng buộc giá trị NOT NULL bắt buộc phải có giá trị cột ghi đƣợc nhập vào Đối với số kiểu liệu không cho phép NULL nên thiết lập giá trị mặc định cho cột đó, ví dụ nhƣ kiểu liệu bit khơng cho phép NULL Trong phát biểu SQL tạo bảng, cần khai báo NULL hay NOT NULL sau kiểu liệu cột Trong giao diện đồ họa cần đánh dấu chọn vào tuỳ chọn Not NULL 3.1.3 INDEXES MySQl sử dụng INDEXES để giải việc tìm kiếm thông tin Nếu lƣợng thông tin đƣợc lƣu trữ bảng lớn, cách sử dụng hệ thống chọn lọc bên MySQl giúp tìm nhanh xác, làm đƣợc điều nhờ sử dụng INDEXES MySQL yêu cầu INDEX bảng Thông thƣờng, sử dụng khóa chính, tạo để giữ liệu riêng lẻ Trƣờng phải “not null” “unique” 3.1.4 UNIQUE Sử dụng UNIQUE để thể tính nhất, chèn thêm liệu, thêm vào chƣơng trình báo lỗi 3.1.5 Tăng tự động (auto Increment) auto_increment khái niệm quan trọng MySQL (tƣơng đƣơng với Identity SQL Server, Autonumber MS Access) Khi muốn cột có giá trị tăng tự động nhƣ AutoNumber/Identity, nên định nghĩa cột nhƣ auto_increment Khi sử dụng auto_increment làm số tăng tự động kiểu liệu số nguyên số nguyên lớn Trong trƣờng hợp, khai báo số tự động MySQL Server, cần phải khai báo thêm thông số nhƣ seed Seed giá trị khởi đầu MySQL Server tự động tăng giá trị, Increament bƣớc tăng, cho biết lần tăng cần giá trị Ví dụ tạo auto_increment cho cột ItemID [Int] auto_increment, nghĩa bắt đầu số lần tăng số Kết có 1,2,3,4, n Trong phát biểu SQL MySQL, để tạo bảng có gá trị tăng tự động cần khai báo tên cột, kiểu liệu Int (Integer) auto_increment nhƣ sau: IDNO Int auto_increment NOT NULL 3.1.6 Các kiểu bảng MySQL kỹ thuật lƣu trữ MySQL hỗ trợ nhiều kiểu bảng liệu máy lƣu trữ khác để giúp tối ƣu hóa CSDL Các kiểu bảng liệu MySQL gồm: ISAM MyISAM 161 InnoDB BDB MERGE HEAP Đặc điểm quan trọng để phân biệt kiểu bảng liệu tính có an tồn giao tác khơng Chỉ bảng liệu kiểu InnoDB BDB có tính an toàn giao tác (transaction) bảng liệu kiểu MyISAM hỗ trợ mục toàn văn (full text index) đặc tính tìm kiếm MyISAM kiểu bảng liệu mặc định tạo bảng liệu mà không khai báo kiểu bảng liệu cụ thể Dƣới đặc điểm kiểu bảng liệu: ISAM: ISAM bị loại khỏi phiên từ 5.x trở Nó đƣợc thay MyISAM Một bảng liệu kiểu ISAM có dung lƣợng tối đa 4GB khơng thể di chuyển MyISAM: Kiểu MyISAM mặc định tạo bảng liệu Các thao tác bảng liệu kiểu diễn nhanh, nhiên lại khơng hỗ trợ đặc tính an tồn giao tác Dung lƣợng bảng liệu kiểu MyISAM phụ thuộc hệ điều hành Bảng liệu kiểu MyISAM chuyển từ hệ thống sang hệ thống khác Với bảng liệu kiểu MyISAM có tới 64 khóa chiều dài tối đa khóa 1024byte InnoDB: Khác với bảng liệu kiểu MyISAM, bảng liệu kiểu InnoDB có đặc tính an tồn giao tác hỗ trợ khóa dịng (row level locking) Các khóa ngoại đƣợc hỗ trợ kiểu InnoDB Tập tin liệu bảng liệu kiểu InnoDB lƣu trữ nhiều file khác Vì dung lƣợng bảng InnoDB phụ thuộc vào dung lƣợng ổ đĩa Giống nhƣ bảng liệu kiểu MyISAM, tập tin liệu InnoDB chuyển từ hệ thống sang hệ thống khác Điểm bất lợi InnoDB so với MyISAM cần nhiều không gian lƣu trữ BD: BDB tƣơng tự nhƣ InnoDB tính an tồn Nó hỗ trợ khóa trang (page level locking) Tuy nhiên tập tin liệu DB chuyển đổi hệ thống MERGE: Bảng liệu kiểu Merge dduwwocj thêm vào để giải vấn đề hạn chế MyISAM Nó biến nhiều bảng MyISAM thành bảng liệu hạn chế dung lƣợng MyISAM khơng cịn trở ngại kĩ thuật HEAP: Bảng liệu kiểu Heap đƣợc lƣu trữ nhớ Do đó, kiểu bảng đƣợc thao tác nhanh Do chế lƣu trữ, liệu bị máy tính khơng cịn nguồn điện đối cịn gây tình trạng tràn nhớ máy chủ sở liệu Các bảng Heap khơng hỗ trợ trƣờng có kiểu AUTO_INCREMENT, BLOB TEXT 162 3.1.7 Lệnh cú pháp MySQL MySQL hệ thống quản lý sở liệu quan hệ (RDBMS) hay đƣợc gọi Relational Database Management System RDBMS mơ hình sở liệu quan hệ thông dụng nay, hầu hết sản phẩm sở liệu quan hệ dựa chuẩn SQL ANSI-SQL, chẳng hạn nhƣ SQL Server, Oracle, PostgreSQL MySQL Điều có nghĩa tất sở liệu quan hệ phải có tiêu chuẩn theo cú pháp SQL =và MySQL ngoại lệ Ngôn ngữ SQL chia làm loại sau:  DDL (Data Definition Language): Ngôn ngữ định nghĩa liệu, dùng để tạo sở liệu, định nghĩa đối tƣợng sở liệu nhƣ Table, Query, Views hay đối tƣợng khác  DML (Data Manipulation Language): Ngôn ngữ thao tác liệu, dùng để thao tác liệu, chẳng hạn nhƣ phát biểu: Select, Inert, Delete, Update,  DCL: (Data Control Language): Ngôn ngữ sử dụng truy cập đối tƣợng sở liệu, dùng để thay đổi cấu trúc, tạo ngƣời dùng, gán quyền chẳng hạn nhƣ: Alter, Grant, Revoke,  TCL: (Transaction Control Language): Ngôn sử dụng để khai báo chuyển tác chẳng hạn nhƣ: Begin Tran, Rollback, Commit, 1) Phát biểu SQL dạng CREATE Phát biểu SQL dạng CREATE dùng để tạo sở liệu đối tƣợng sở liệu MySQL, SQL Server, Oracle, , chúng cú pháp nhƣ sau: CREATE Database CREATE  OBJECT TYPE: Loại đối tƣợng sở liệu nhƣ Procedure, Table, View,  OBJECT NAME: Tên đối tƣợng sở liệu SQL nhƣ sp_IC, tblEmployer, 2) Tạo sở liệu - Create database Để tạo sở liệu MySQL hay SQL Server sử dụng cú pháp sau: CREATE DATABASE Cú pháp đầy đủ phát biểu tạo sở liệu nhƣ sau CREATE DATABASE [ ON [PRIMARY] ( [Name= ,] FileName= [, SIZE= ] [, MAXSIZE= ][, FILEGROWTH = ] 163 )] [ LOG ON ( [Name= ,] FileName= [, SIZE= ] [, MAXSIZE= ][, FILEGROWTH = ] )] [COLLATE ] [For Load | For Attach] ON: Dùng để định nghĩa nơi chứa sở liệu không gian chứa tập tin log  NAME: Dùng định nghĩa tên sở liệu Tên dùng tham chiếu gọi đến sở liệu, tên đƣợc dùng cho trình backup, export, Import, Shrink sở liệu  FILENAME: Tên tập tin sở liệu lƣu đĩa cứng, thông thƣờng cài SQL Server lên ổ đĩa giá trị mặc định cho phép lƣu tập tin đến thƣ mục Tuy nhiên, muốn thay đổi vị trí file Khi tạo sở liệu, định nghĩa vị trí đặt tập tin thƣ mục khơng thể di chuyển cách thủ công (nhƣ dùng Explorer Windows), làm điều thật nguy hiểm liệu sở liệu có giá trị kinh tế  SIZE: Dung lƣợng sở liệu khởi tạo chúng Thông thƣờng giá trị mặc định MB  Dung lƣợng phải số nguyên, tăng thêm cách sử dụng thủ tục Shrink SQL Server  MAXSIZE: Dung lƣợng lớn nhất, dung lƣợng sở liệu tăng lên đến mức MaxSize dừng lại Nếu dung lƣợng MaxSize, chuyển tác bị huỷ bỏ hay trả lỗi thực đƣợc, làm cho sở liệu bị treo Để tránh điều xảy ra, ngƣời quản trị sở liệu phải thƣờng xuyên theo giỏi trình tăng dung lƣợng sở liệu theo thời gian, để có biện pháp tránh rủi ro xảy  FILEGROWTH: Dung lƣợng khởi tạo dung lƣợng tối đa cho phép tăng trình thêm liệu vào sở liệu Nhằm tự động hóa, phải thiết lập q trình tăng tự động theo số KB cho trƣớc hay tỷ lệ phần trăm theo dung lƣợng có  LOG ON: Log on cho phép quản lý chuyển tác xảy trình sử dụng sở liệu SQL Server 164 Xây dựng sở liệu Test Nhƣ trình bày trên, sau ví dụ tạo sở liệu Test có cú pháp nhƣ sau USE master GO CREATE DATABASE Test ON ( NAME = Test, FILENAME = 'c:\mssql7\data\Testdat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = ) LOG ON ( NAME = 'Testlog', FILENAME = 'c:\mssql7\data\Testlog.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) GO Để đơn giản hoá đối tƣợng Table sở liệu Test, trình bày vài phát biểu SQL dạng Create Table Ví dụ: Tạo số bảng Test /* Tạo bảng danh sách khách hàng thường xuyên */ CREATE TABLE tblcustomers ( CustID int(3) unsigned NOT NULL auto_increment, Username varchar(20) NOT NULL DEFAULT '' , Password varchar(10) NOT NULL DEFAULT '' , CustName varchar(50) , Address varchar(100) , Tel varchar(20) , FaxNo varchar(10) , Email varchar(50) , Contact varchar(50) , CountryCode char(3) , ProvinceCode char(3) , PRIMARY KEY (CustID), INDEX CustID (CustID) ); 165 /* Tạo bảng hợp đồng mua hàng qua mạng */ CREATE TABLE tblorders ( OrderID int(3) NOT NULL auto_increment, OrderDate date , CustID int(11) , Description varchar(100) DEFAULT '0' , TranID tinyint(3) DEFAULT '0' , PaymentID tinyint(3) DEFAULT '0' , Amount float DEFAULT '0' , ShipCost float DEFAULT '0' , TotalAmount float DEFAULT '0' , PRIMARY KEY (OrderID), INDEX OrderID (OrderID) ); /* Tạo bảng hợp đồng chi tiết mua hàng qua mạng */ CREATE TABLE tblorderdetails ( ItemID int(3) unsigned DEFAULT '0' , OrderID int(3) unsigned DEFAULT '0' , No tinyint(3) unsigned DEFAULT '0' , Qtty int(3) unsigned DEFAULT '0' , Price int(3) unsigned DEFAULT '0' , Discount int(3) unsigned DEFAULT '0' , Amount bigint(3) unsigned DEFAULT '0' ); 3) Một số quy định thiết kế Table Tên cột - Column Name Đặt tên cột giống nhƣ đặt tên bảng, có nhiều quy tắc đặt tên (nhƣ trình bày phần table), nhƣng khuyến khích nên theo số quy tắc sau:  Tên cột bắt đầu chữ hoa, lại chữ thƣờng  Tên ngắn gọn đầy đủ ý nghĩa  Khơng nên đặt tên cột có khoảng trắng, sau gặp phiền toái tham chiếu đến cột  Khơng đặt tên cột trùng với từ khoá, từ dành riêng, ký tự đặc biệt nhƣ phép toán hay toán tử khác  Nên đặt tên cột tên cột có quan hệ với bảng khác sở liệu, giúp dễ hiểu tránh bị nhầm lẫn Kiểu liệu - Data type 166 Nhƣ trình bày lại liệu phần trên, xây dựng sở liệu, tất trƣờng bảng cần phải có kiểu liệu cụ thể Vấn đề quan trọng chọn kiểu liệu cho phù hợp với liệu mà ngƣời dùng nhập vào Để thiết kế liệu phù hợp với thực tế, ngồi tính ứng dụng hợp với ngữ cảnh cần quan tâm đến kiểu liệu tƣơng thích chiều dài cột [CustID] [varchar] (10) /* hay */ [CustID] int Giá trị mặc định - Default Thông thƣờng tạo cột bảng cần áp dụng giá trị mặc định, không cho trƣờng hợp số liệu khơng nhập từ bên ngồi mà cịn cho cột tự động có giá trị tự sinh Với lý nhƣ vậy, cần có số giá trị mặc định cho cột cần thiết  Nếu cột số có giá trị mặc định  Nếu cột ngày tháng có giá trị mặc định ngày (nhƣ 0000-00-00 CurDate())  Nếu cột có giá trị 1, khai báo giá trị mặc định  Nếu cột chuỗi có giá trị mặc định nhƣ 'A' 4) Thay cấu trúc đối tƣợng ALTER Khi cần thiết phải sửa đổi phần cấu trúc đối tƣợng nhƣ table (view, hay SP SQL Server) mục đích đó, sử dụng phát biểu ALTER để thay đổi cấu trúc đối tƣợng có: ALTER Khi bảng tồn sở liệu, nhu cầu cần thiết phải thay đổi cấu trúc bảng, sử dụng phát biểu ALTER TABLE tham số chúng nhƣ cú pháp sau: ALTER TABLE table alteration [,alteration] Chẳng hạn, sử dụng phát biểu ALTER TABLE để thêm cột tên Activate với kiểu liệu TinyInt có giá trị mặc định Ví dụ: Thêm cột tên Activate vào bảng tblOrders ALTER TABLE tblorders ADD Activate TINYINT DEFAULT "1" Khi thay đổi thiết lập giá trị mặc định cho cột nên quan tâm đến giá trị mặc định có phù hợp cho ghi tồn hay không Muốn thay đổi giá trị mặc định cột cho ghi tồn tại, sử dụng đến mệnh đề phụ nhƣ ví dụ sau: 167 o Xuất thơng tin khách hàng dạng lƣới có địnhdạng nhƣ hình trên, đó: dịng tiêu đề có cột đƣợc canh giữa, chữ in đậm, có màu khác so với dòng nội dung; dòng chẵn dòng lẻ hiển thị nội dung có màu khác o Cột giới tính đƣợc canh hiển thị thơng tin nhƣ sau: giới tính khách hàng Nam hiển thị hình tƣợng trƣng cho phái Nam, cịn ngƣợc lại hiển thị hình tƣợng trƣng cho phái Nữ nhƣ hình Lƣới phân trang Thiết kế trang hiển thị thơng tin sữa có phân trang nhƣ sau: Yêu cầu chức năng: STT Đối tƣợng trang luoi_phan_trang Yêu cầu xử lí chức o Kết nối vào MySQL o Chọn CSDL QL_BAN_SUA o Đọc bảng sữa, loại sữa, hãng sữa o Sử dụng class pager để thực việc phân trang, đó: - Mỗi trang gồm có hai dịng liệu - Xuất thơng tin dạng lƣới có định dạng nhƣ hình (dịng chẵn dịng lẻ có màu nền, màu chữ khác nhau, giá sữa định dạng theo kiểu tiền tệ) - Hiển thị danh sách trang theo dạng số List đơn giản Tạo trang hiển thị thông tin sản phẩm sữa dạng list nhƣ hình sau: 242 Ghi Yêu cầu chức năng: STT Đối tƣợng trang list_don_gian Yêu cầu xử lí chức Ghi o Kết nối vào MySQL o Chọn CSDL QL_BAN_SUA o Đọc bảng sữa o Thiết kế hiển thị thông tin sản phẩm sữa nhƣ hình trên, đó: - Mỗi sữa hiển thị dịng có hai cột: cột hình ảnh cột nội dung (có tên sữa, hãng sản xuất, loại sữa, trọng lƣợng, đơn giá) List dạng cột Tạo trang hiển thị thông tin sản phẩm sữa dạng list nhƣ hình sau: Yêu cầu chức năng: STT Đối tƣợng trang list_dang_cot Yêu cầu xử lí chức o Kết nối vào MySQL o Chọn CSDL QL_BAN_SUA 243 Ghi o Đọc bảng sua o Thiết kế hiển thị thông tin sản phẩm sữa nhƣ hình trên, đó: - Mỗi dịng có năm cột, cột có table hiển thị thông tin sữa (tên sữa, trọng lƣợng, đơn giá) hình ảnh List dạng cột có link Tạo hai trang, đó: - Trang đầu hiển thị thơng tin sản phẩm sữa dạng list có link nhƣ hình sau: - Trang sau hiển thị chi tiết sản phẩm sữa chọn trang trƣớc: Yêu cầu chức năng: STT Đối tƣợng Yêu cầu xử lí chức trang o Kết nối vào MySQL list_dang_cot_co_link o Chọn CSDL QL_BAN_SUA o Đọc bảng sua o Thiết kế hiển thị thông tin sản phẩm sữa nhƣ hình trên, đó: 244 Ghi - Mỗi dịng có năm cột, cột có table hiển thị thơng tin sữa hình ảnh - Ở tên sữa tạo link qua trang list_chi_tiet truyền vào mã sữa trang list_chi_tiet o Hiển thị chi tiết sản phẩm sữa nhƣ hình tƣơng ứng với mã sữa lấy từ trang list_dang_cot_co_link truyền qua List chi tiết có phân trang Tạo trang hiển thị thơng tin chi tiết sản phẩm sữa dạng list có phân trang: Yêu cầu chức năng: STT Đối tƣợng trang list_phan_trang Yêu cầu xử lí chức o Kết nối vào MySQL o Chọn CSDL QL_BAN_SUA o Đọc bảng sữa o Thiết kế hiển thị thông tin sản phẩm sữa có phân trang nhƣ hình - Gọi sử dụng class pager cho sẵn để phân trang (hai sản phẩm trang) Tìm kiếm đơn giản Tạo trang tìm kiếm hiển thị thơng tin chi tiết sản phẩm sữa dạng list: 245 Ghi Yêu cầu chức năng: STT Đối tƣợng trang tim_kiem_don_gian Yêu cầu xử lí chức Ghi o Kết nối vào MySQL o Chọn CSDL QL_BAN_SUA o Thực việc tìm kiếm dựa tên sữa (tƣơng đối) ngƣời dùng nhập vào hiển thị nhƣ hình nhƣ tìm thấy, thơng báo "Khơng tìm thấy sản phẩm này" khơng tìm thấy o Cho biết có sản phẩm đƣợc tìm thấy 10 Tìm kiếm nâng cao Tạo trang tìm kiếm nâng cao hiển thị thông tin chi tiết sản phẩm sữa dạng list: 246 Yêu cầu chức năng: STT Đối tƣợng trang tim_kiem_nang_cao Yêu cầu xử lí chức o Kết nối vào MySQL o Chọn CSDL QL_BAN_SUA o Thực việc tìm kiếm dựa loại sữa, hãng sữa mà ngƣời dùng chọn tên sữa (tƣơng đối) ngƣời dùng nhập vào hiển thị nhƣ hình nhƣ tìm thấy, thơng báo "Khơng tìm thấy sản phẩm này" khơng tìm thấy o Cho biết có sản phẩm đƣợc tìm thấy 11 Thêm Tạo trang thêm sản phẩm sữa nhƣ sau: 247 Ghi Yêu cầu thiết kế: STT Đối tƣợng Yêu cầu xử lí chức Ghi - Đặt tên cho Form Form - Thiết lập phƣơng thức cho Form pos - Và action Form tên trang Điều khiển - Sử dụng điều khiển TextField, List/Menu, Button - Trong đó, đọc loại sữa bảng loại sữa gán vào cho list/menu loại sữa - Và đọc hãng sữa bảng hãng sữa gán vào cho list/menu hãng sữa Yêu cầu chức năng: STT Đối tƣợng Yêu cầu xử lí chức 248 Ghi Nút Thêm o Kết nối vào MySQL o Chọn CSDL QL_BAN_SUA o Thực việc thêm sữa vào bảng sữa sau kiểm tra liệu nhập vào hợp lệ, khơng hợp lệ thơng báo "Kiểm tra lại thơng tin nhập vào" o Sau thêm sữa vào bảng sữa, hiển thị lại thông tin sữa theo định dạng hình 12 Xóa – Sửa - Tạo ba trang trang hiển thị - sửa - xóa thông tin khách hàng nhƣ sau: - Trang hiển thị tồn thơng tin khách hàng hai link "Sửa", "Xóa" Trang thứ hai liệt kê thơng tin cho ngƣời dùng cập nhật: Trang thứ ba dùng để xóa thơng tin khách hàng: 249 u cầu thiết kế: Đối tƣợng STT Yêu cầu xử lí chức Ghi - Đặt tên cho Form cập nhật thông tin Form khách hàng - Đặt tên cho Form xóa thông tin khách hàng - Thiết lập phƣơng thức cho Form post - Và action Form tên trang Điều khiển - Sử dụng điều khiển TextField, Radio Group, Button - Trong đó, mã khách hàng không cho ngƣời dùng cập nhật Yêu cầu chức STT Đối tƣợng Yêu cầu xử lí chức Trang o Kết nối vào MySQL thong_tin_khach_hang o Chọn CSDL QL_BAN_SUA o Đọc liệu bảng khách hàng hiển thị nhƣ hình o Ở dịng thơng tin khách hàng tạo thêm link cập nhật để chuyển sang trang cập nhật kèm theo mã khách hàng đƣợc chọn link xóa để sang trang xóa thơng tin khách hàng o Cột giới tính hiển thị dạng Nam/Nữ Nút Cập nhật (trang o Kết nối vào MySQL cập nhật khách hàng) o Chọn CSDL QL_BAN_SUA o Lấy mã khách hàng cần cập nhật thông tin, sau tìm hiển thị 250 Ghi thơng tin khách hàng lên điều khiển tƣơng ứng form o Kiểm tra thông tin khách hàng sau cập nhật -> thấy hợp lệ thêm vào bảng khách hàng CSDL, ngƣợc lại thơng báo: "Kiểm tra lại thông tin" o Tạo link quay trang thơng tin khách hàng Nút Xóa (trang xóa o Kết nối vào MySQL khách hàng) o Chọn CSDL QL_BAN_SUA o Lấy mã khách hàng cần xóa thơng tin, sau tìm hiển thị thơng tin khách hàng lên điều khiển tƣơng ứng form o Kiểm tra xem khách hàng mua hàng hay chƣa, chƣa mua hàng cho phép xóa cịn ngƣợc lại thơng báo "Khách hàng … mua hàng nên khơng thể xóa đƣợc" o Tạo link quay trang thông tin khách hàng Bài Tạo Website theo yêu cầu sau: Tạo ứng dụng Web cho phép quản lý danh sách nhân viên phòng ban Gồm hai form bản: - Default.php: trang cho phép gọi trang quản lý nhân viên phòng ban - qlnv.php: cho phép hiển thị danh sách nhân viên, ngồi có chức cập nhật thông tin nhân viên Danh sách nhân viên có hỗ trợ chức phân trang - qlpb.php: cho phép chọn phòng ban xem danh sách nhân viên phịng ban, ngồi hiển thị thơng tin ngƣời phụ trách phịng ban phòng ban Hướng dẫn: 1.1 Cơ sở liệu Field Name Field Type Field Size MaPhong varchar 10 TenPhong varchar 100 ChucNang varchar 200 TruongPhong varchar 100 251 Bảng PhongBan 1.2 Giao diện Giao diện trang default.php Giao diện trang qlnv.php Giao diện trang qlpb.php Tạo ứng dụng Web cho phép quản lý album hát: - Cho phép user xem hát theo mục nhƣ: tên tác giả, thể loại, album - User tạo album từ hát có danh sách hát Ứng dụng gồm trang nhƣ sau: - SongManaging.php: trang cho phép ngƣời dùng chọn xem hát theo tên tác giả, thể loại album có sẵn Giao diện trang Web đơn giản nhƣ sau: 252 Giao diện trang SongManaging.php Minh họa cách thao tác trang SongManaging.php - Album.php: Cho phép user tạo album với tên gọi danh sách hát chọn trang SongManaging.php Giao diện trang Album.php Hướng dẫn: 2.1 Cơ sở liệu: tạo sở liệu SongAlbum có bảng nhƣ sau: - Albums: chứa danh sách album - Songs: chứa danh sách hát - AlbumSong: chứa danh sách hát thuộc album - Artist: danh sách nghệ sỹ - Genres: thể loại 253 Field Name Field Type AlbumID int AlbumName varchar CreateDate date Field Size 100 Bảng Album Field Name Field Type AlbumID int SongID int Field Size Bảng AlbumSong Field Name Field Type ArtistID int ArtistName varchar Field Size 100 Bảng Artist Field Name Field Type GenrelID int GenreName varchar Field Size 50 Bảng Genres Field Name Field Type SongID int SongName varchar GenreID int ArtistID int Field Size 200 Bảng Song Để quản lý bán sách cửa hàng mạng ngƣời ta xây dựng Website đƣợc thiết kế giao diện nhƣ sau: 254 Dữ liệu đƣợc lƣu trữ bảng Sach Thanhvien gồm trƣờng nhƣ sau: Sach (id, Tensach, Tacgia, Nhaxb, Namxb, Sotrang, Mota, Hinhanh) Thanhvien (Tentruynhap, Matkhau, Hoten, Email, Quyen) 3.1 Sử dụng phần mềm MySQL Server tạo bảng liệu có cấu trúc nhƣ (với trƣờng độ rộng phù hợp) 3.2 Thiết kế Website có cấu trúc nhƣ với hình ảnh phù hợp 3.3 Xây dựng trang Web cho mục: - Sản phẩm: trang “Thêm - Sửa” dùng để nhập mới, sửa đổi xóa sách; trang “Tìm kiếm” dùng để tìm kiếm sách theo tên; trang “Danh sách” dùng để xem danh sách sách - Hệ thống: trang “Danh sách thành viên” để xem danh sách thành viên; trang “Thêm - Sửa thành viên” dùng để nhập mới, sửa đổi xóa thành viên 3.4 Xây dựng lớp, đối tƣợng, phƣơng thức, kiện xử lý cho mục đăng nhập hệ thống cho username password cho đăng nhập hệ thống trang thái đƣợc thay đổi theo tên ngƣời dùng, ngƣợc lại báo lỗi, trạng thái chƣa đăng nhập 255 TÀI LIỆU THAO KHẢO [1] Khuất Thùy Dƣơng Lập trình ứng dụng Web với PHP (Tập 1,2 ), NXB Đại Học Quốc Gia TP.HCM, 2008 [2] Phạm Hữu Khang Xây dựng ứng dụng web PHP MySQL Nhà xuất Phƣơng Đông 2005 [3] Nguyễn Trƣờng Sinh Sử dụng PHP MySQL thiết kế web động, NXB Thống kê, 2005 [4] Nguyễn Tấn Trƣờng Hƣớng Dẫn Thực Hành PHP Và MySQL Toàn Tập, NXB: Thanh Niên, 2008 [5] Elizabeth Naramore, Jason Gerner, Yann Le Scouarnec, Jeremy Stolz, Michael K Glass Begining PHP 5, Apache and MySQL web development, Wrox Publishing, 2005 [6] Michael Glass, Yann Le Scouarnec, Elizabeth Naramore, Gary Mailer, Jeremy Stolz, and Jason Gerner Beginning PHP, Apache, MySQL®Web Development, Wiley Publishing, 2004 [7] Luke Welling, Laura Thomson PHP and MySQL Web Development, 4th Edition Addison-Wesley Publishing, 2008 256 ... 100 0-0 1-0 1 Date trình by dƣới dạng yyyy-mm-dd Time -8 38:59:59 838:59:59 Time trình by dƣới dạng hh:mm:ss DateTime 100 0-0 1-0 1 Date v Time trình by dƣới dạng yyyy-mm-dd 00:00:00 999 9- 1 2- 31 23 :59:59... -2 3 1 -> 23 1 - hay int Số nguyên Số nguyên lớn 32 … -1 -2 6 3 -> 26 3-1 hay … 26 4-1 bigint Kiểu liệu số chấm động Loại Range Diễn giải Bytes float Phụ thuộc số thập phân Float(M,D) ±1.175494351E-38... 197 0-0 1-0 1 00:00:00 TimeStamp trình by dƣới dạng yyyy-mm-dd hh:mm:ss Year[ (2| 4)] 1970 -2 0 69 1901 -2 1 55 Year trình by dƣới dạng số hay số Đối với kiểu liệu TimeStamp, định dạng nhiều cách nhƣ trình

Ngày đăng: 08/06/2021, 14:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan