MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều cơ sở dữ liệu khác nhau, mỗi người dùng có một tên truy cập user name và mật khẩu tương
Trang 1LỜI CẢM ƠN
Trước tiên em xin gửi lời cám ơn chân thành và sâu sắc tới các thầy cô giáo trong trường Đại học Công Nghệ Thông Tin Và Truyền Thông nói chung và các thầy cô giáo trong khoa Công Nghệ Thông Tin, bộ môn Truyền thông & Mạng máy tính nói riêng đã tận tình giảng dạy, truyền đạt cho em những kiến thức, kinh nghiệm quý báu trong suốt thời gian qua
Đặc biệt em xin gửi lời cảm ơn đến cô giáo ThS Lương Thị Minh Huế đã tận tình hướng dẫn, trực tiếp chỉ bảo em trong suốt thời gian làm đề tài Trong thời gian làm việc với cô, em không những tiếp thu thêm nhiều kiến thức bổ ích
mà còn học được tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả Đây là những điều rất cần thiết cho em trong quá trình học tập và công tác sau này
Do thời gian hạn hẹp,mặc dù đã nỗ lực hết sức mình nhưng đề tài của em khó tránh khỏi những thiếu sót Em rất mong nhận được những ý kiến đóng góp của quý thầy cô và các bạn để đề tài của em được hoàn thiện hơn Một lần nữa
em xin chân thành cảm ơn!
Trang 2MỤC LỤC
LỜI CẢM ƠN 1
MỤC LỤC 2
DANH MỤC HÌNH ẢNH 3
BẢNG KÝ HIỆU VÀ DANH MỤC VIẾT TẮT 5
LỜI MỞ ĐẦU 6
CHƯƠNG I CƠ SỞ LÝ THUYẾT 7
1.1 Ngôn ngữ HTML 7
1.2 Công nghệ Responsive Boostrap 8
1.3 Ngôn ngữ PHP 11
1.3.1 Giới thiệu và sử dụng ngôn ngữ PHP 11
1.3.2 Ưu và ngôn ngữ nhược điểm của PHP 19
1.4 MYSQL 20
1.4.1 MySLQ là gì? 20
1.4.2 Đặc điểm của MySQL 20
1.4.3 Các kiểu dữ liệu trong cơ sở dữ liệu MySQL 21
1.4.4 Phát biểu SQL 24
1.4.5 Ưu và nhược điểm của MySQL 25
1.5 Hệ quản trị CSDL MySQL 26
CHƯƠNG II KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG 28
2.1 Khảo sát hiện trạng hệ thống 28
2.1.1 Tìm hiểu hiện trạng 28
2.1.2 Các thông tin vào ra của hệ thống 32
2.2 Phân tích thiết kế hệ thống 32
2.2.1 Biểu đồ Use Case 32
2.2.2 Biểu đồ trình tự và cộng tác 43
2.3 Thiết kế cơ sở dữ liệu 54
CHƯƠNG III XÂY DỰNG WEBSITE 55
3.1 Giao diện website 55
3.2 Giao diện trang quản trị 59
KẾT LUẬN 62
TÀI LIỆU THAM KHẢO 64
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 65
Trang 3DANH MỤC HÌNH ẢNH
Hình 1 1:Cấu trúc thư mục của bootstrap 9
Hình 1 2: Ví dụ về Bootstrap 10
Hình 1 3: Ví dụ về Bootstrap .11
Hình 2 1: Biểu đồ UC cho tác nhân người dùng 39
Hình 2 2: Biểu đồ UC cho chức năng quản lý thông tin cá nhân 40
Hình 2 3: Biểu đồ UC cho chức năng xem tài liệu 40
Hình 2 4: Biểu đồ UC cho tác nhân người quản lý 41
Hình 2 5: Biểu đồ UC cho chức năng quản lý thành viên 41
Hình 2 6: Biểu đồ UC cho chức năng quản lý các danh mục sản phẩm .42
Hình 2 7: Biểu đồ UC cho chức năng quản lý tài liệu .42
Hình 2 8: Biểu đồ trình tự cho UC đăng kí 43
Hình 2 9: Biểu đồ cộng tác cho UC đăng kí 43
Hình 2 10: Biểu đồ trình tự cho UC đăng nhập 44
Hình 2 11: Biểu đồ cộng tác cho UC đăng nhập 44
Hình 2 12: Biểu đồ trình tự cho UC tìm kiếm 45
Hình 2 13: Biểu đồ cộng tác cho UC tìm kiếm 45
Hình 2 14: Biểu đồ trình tự cho UC xem chi tiết tài liệu 46
Hình 2 15:Biểu đồ cộng tác cho UC xem thông tin sản phẩm .46
Hình 2 16: Biểu đồ trình tự cho UC Upload tài liệu .47
Hình 2 17: Biểu đồ cộng tác cho UC Upload tài liệu 47
Hình 2 18: Biểu đồ cộng tác cho UC cập nhật thông tin cá nhân 48
Hình 2 19: Biểu đồ cộng tác cho UC cập nhật thông tin cá nhân 48
Hình 2 20: Biểu đồ trình tự cho UC quản lý thành viên 49
Hình 2 21: Biểu đồ cộng tác cho UC quản lý thành viên 50
Hình 2 22: Biểu đồ trình tự cho UC quản lý các danh mục tài liệu 51
Hình 2 23: Biểu đồ cộng tác cho UC quản lý danh mục các tài liệu 52
Hình 2 24 Biểu đồ trình cho UC quản lý tài liệu 52
Hình 2 25: Biểu đồ lớp quản lý tài liệu 53
Hình 2 26: Biểu đồ lớp quản lý danh mục tài liệu 53
Hình 2 27: Biểu đồ lớp quản lý thành viên 53
Trang 4Hình 2 28: Biểu đồ lớp quản lý slide 53
Hình 2 29: Cơ sở dữ liệu 54
Hình 3 1: Giao diện website 55
Hình 3 2: Giao diện header 55
Hình 3 3: Giao diện danh mục tài liệu 56
Hình 3 4: Giao diện nội dung chính 56
Hình 3 5: Giao diện footer 57
Hình 3 6: Giao diện trang đăng ký 57
Hình 3 7: Giao diện trang đăng nhập 58
Hình 3 8: Giao diện trang tải lên 58
Hình 3 9: Giao diện trang liên hệ 59
Hình 3 10: Giao diện chi tiết tài liệu 59
Hình 3 11: Giao diện trang quản trị 59
Hình 3 12: Giao diện quản lý thành viên 60
Hình 3 13:Giao diện quản lý thành viên 60
Hình 3 14:Giao diện quản lý tài liệu 60
Hình 3 15:Giao diện thống kê báo cáo 61
Hình 3 16: Quản lý slide 61
Trang 5BẢNG KÝ HIỆU VÀ DANH MỤC VIẾT TẮT STT Ký
hiệu
Chữ viết đầy đủ Nghĩa tiếng Việt
1 HTML HyperText Markup
Language
Ngôn ngữ đánh dấu siêu văn bản
2 PHP Hypertext Preprocessor Ngôn ngữ lập trình kịch bản
3 CSDL Cơ sở dữ liệu Cơ sở dữ liệu
4 CNTT Google File Systems Hệ thống tập tin Google
5 URL Uniform Resource Locator Định vị Tài nguyên thống nhất,
được dùng để tham chiếu tới tài
nguyên trên Internet
6 IT Information Technology Công nghệ thông tin
7 SEO Search engine optimization Tối ưu hóa công cụ tìm kiếm
8 CMS Content Management
System
Hệ thống quản trị nội dung
9 HTTP Hypertext transfer protocol
over secure socket layer
Giao thức truyền siêu văn bản
trên tầng ổ cắm an toàn
10 UC Use Case Mô tả sự tương tác đặc trưng
giữa người dùng bên ngoàivà hệ
thống
11 SQL Structured Query Language Ngôn ngữ truy vấn có cấu trúc
Trang 6LỜI MỞ ĐẦU
Công nghệ thông tin phát triển ngày càng hiện đại và đổi mới không ngừng, bằng việc chinh phục hết đỉnh cao này thành đỉnh cao khác.Mạng internet đang trở thành mạng truyền thông có sức ảnh hưởng lớn nhất, không thể thiếu trong tất cả các hoạt động của con người trong việc truyền tải và trao đổi dữ liệu
từ trong nước đến ngoài nước, từ ngôn ngữ, hình ảnh cho đến âm thanh
Internet đã thúc đẩy sự ra đời làm biến đổi bộ mặt văn hoá cũng như nâng cao chất lượng cuộc sống của con người và các hoạt động thông thường như sản xuất, kinh doanh, học tập
Hiện nay, nguồn tiếp cận tài liệu của các bạn học sinh, sinh viên ngày càng lớn, thông tin đa chiều mở ra yêu cầu cần có 1 website để học sinh và giáo viên có thể cùng nhau chia sẻ nhiều tài liệu phong phú, bổ ích mà bạn than đang
có Ngoài những nguồn truyền thống như sách báo, thư viện thì website chia sẻ tài liệu cũng là 1 trong những kênh thông tin được rất nhiều bạn trẻ ưa chuộng Với nhu cầu đặt ra cùng với những gợi ý của cô giáo Lương Thị Minh Huế,em đã
đi đến thực hiện đề tài “Xây dựng website chia sẻ tài liệu trực tuyến cho trường THPT Phú Lương - Thái Nguyên” Nhằm phục vụ nhu cầu và xu
hướng tìm kiếm tài liệu của học sinh hiện nay Hơn thế nữa đề tài cũng giúp em tìm hiểu cách thức xây dựng một website chia sẻ tài liệu trực tuyến bằng
PHP&MYSQL
Em xin cảm ơn sự hướng dẫn tận tâm của cô giáo Th.s Lương Thị Minh Huế giảng viên trường đại học Công nghệ thông tin và Truyền thông Thái Nguyênngười đã giúp em hoàn thành thành đề tài một cách thuận lợi Tuy nhiên với trình độ thực tiễn còn hạn chế và một số khó khăn gặp phải trong lúc thực hiện đề tài nên cũng không thể tránh khỏi những thiếu sót em rất mong nhận được sự ý kiến đóng góp từ thầy đề đề tài của em được hoàn thiện hơn
Em xin chân thành cảm ơn!
Trang 7CHƯƠNG I CƠ SỞ LÝ THUYẾT
1.1 Ngôn ngữ HTML
HTML (viết tắt từ HyperText Markup Language) là một ngôn ngữ đánh dấu siêu văn bản, được thiết kế ra để xây dựng các trang web.Vậy thế nào là ngôn ngữ đánh dấu siêu văn bản? Ta hãy cùng xem xét từng khía cạnh một:
Siêu văn bản (HyperText): Như ta đã biết, liên kết siêu văn bản là một từ hay một câu trong trang Web dùng để chỉ đến trang Web khác Khi nhấn chuột lên một trong các liên kết này, trình duyệt web (như Netscape Navigator hoặc Internet Explorer) sẽ đưa ta tức khắc đến trang Web kia mà không cần hỏi han gì
Vì những liên kết siêu văn bản này thật sự là tính năng đặc trưng của World Wide Web, các trang Web thường được biết như là những tài liệu siêu văn bản.Vì thế, HTML có từ siêu văn bản trong tên của nó
Đánh dấu (Markup): Có từ điển định nghĩa markup là các chỉ dẫn chi tiết
về kiểu dáng được ghi trên bản viết tay để xếp chữ in Như vậy, chúng ta có thể hiểu đó là các lệnh chi tiết về kiểu dáng được đánh vào tài liệu văn bản để đưa lên WWW
Nói chung, HTML tồn tại như là các tập tin văn bản chứa trên các máy tính nối vào mạng Internet Các file này có chứa thẻ đánh dấu và thường được truyền đi trên mạng internet thông qua giao thức mạng HTTP Sau đó thì phần HTML của chúng sẽ được hiển thị thông qua một trình duyệt web, một loại phần mềm trực quan đảm nhiệm công việc đọc văn bản của trang cho người sử dụng
Cấu trúc của một tài liệu HTML
Các tập tin HTML luôn bắt đầu bằng thẻ <HTML>.Thẻ này không làm gì khác ngoài nhiệm vụ báo cho trình duyệt Web biết rằng nó đang đọc một tài liệu
có chứa các mã HTML.Tương tự, dòng cuối trong tài liệu định dạng HTML luôn luôn là thẻ </HTML>, có tác dụng thông báo sự kết thúc của văn bản HTML với trình duyệt
Chi tiết kế tiếp trong catalog thẻ HTML dùng để chia tài liệu thành hai phần: đầu và thân
Trang 8Phần đầu giống như lời giới thiệu cho trang Các trình duyệt Web dùng phần đầu này để thu nhặt các loại thông tin khác nhau về trang Để xác định phần đầu, ta sử dụng thẻ <HEAD> và thẻ </HEAD> ngay sau thẻ <HTML> Mặc dù
ta có thể đặt một số chi tiết bên trong phạm vi phần đầu này, nhưng phổ biến nhất
là tên trang Nếu có ai đó xem trang này trong browser, thì tên trang sẽ xuất hiện trong dải tên của cửa sổ browser Để xác định tên trang, ta đặt đoạn văn bản tên
đó giữa các thẻ <TITLE> và </TITLE>
Phần thân là nơi nhập vào các văn bản sẽ xuất hiện trên trang Web lẫn các thẻ khác quy định dáng vẻ của trang Để xác định phần thân, ta đặt các thẻ
<BODY> và </BODY> sau phần đầu (dưới </HEAD>)
Dưới đây là cấu trúc cơ bản của một trang web định dạng HTML:
1.2 Công nghệ Responsive Boostrap
Giới thiệu về Twitter Bootstrap
Twitter Bootstrap bao gồm các mã CSS + HTML cơ bản cho typography, forms, buttons, tables, grids, navigation, và nhiều thành phần khác của website
Twitter Bootstrap cung cấp lưới cố định (fixed) rộng 940px và 12 cột Tất nhiên là cũng có giải pháp cho việc dùng layout dạng động (fluid)
Style của các phần tử HTML trong Twitter Bootstrap khá đơn giản và thanh lịch Ví dụ như phần đổ bóng trong input, highlight của bảng biểu, các mã CSS hiển thị cảnh báo, tabs, phân trang…
Trang 9 Tại sao lại sử dụng Twitter Bootstrap
Twitter Bootstrap giúp chúng ta giảm thiểu thời gian thiết kết html và css.Twitter Bootstrap định nghĩa sẳn các class css công việc của chúng ta chỉ là
sử dụng các class đó vào mục đích của mình.Twitter Bootstrap còn hổ trợ Responsive design một cách làm giao diện đa thiết bị rất được ưu chuộng trong thời gian gần đây
Cách sử dụng Twitter Bootstrap
Tải Bootstrap tại đây: http://twitter.github.io/bootstrap/
Sau khi tải về, bạn sẽ có một file Zip Tiến hành giải nén ta có một thư mục
có tên bootstrap, bên trong có 3 thư mục : css, img, js
Hình 1 1:Cấu trúc thư mục của bootstrap
Bước 1: Chúng ta tạo 1 file html có tên là index.html ở trong thư mục bootstrap vừa giải nén phía trên
Vậy là xong phần head Giờ chúng ta viết tiếp phần body với 2 textbox và 2 button như sau:
Trang 10Hình 1 2: Ví dụ về Bootstrap Vậy là xong.Ví dụ chỉ đơn giản vậy thôi
Bạn sẽ thắc mắc là sao chạy nút submit và reset lại không nằm xuống phía dưới?
Hãy thu nhỏ trình duyệt và bạn sẽ thấy điều kỳ diệu:
Trang 11Hình 1 3: Ví dụ về Bootstrap
1.3 Ngôn ngữ PHP
1.3.1 Giới thiệu và sử dụng ngôn ngữ PHP
a Giới thiệu ngôn ngữ PHP
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
PHP là gì ?
PHP là một công nghệ phía máy chủ (server – side) và không phụ thuộc môi trường (cross-platfom) Cả hai yếu tố này đều rất quan trọng Khái niệm công nghệ phía máy chủ nói đến việc mọi thứ trong PHP đều xảy ra trên máy chủ (ngược với máy khách là máy của người dùng) Tính chất không phụ thuộc môi trường cho phép PHP chạy trên hầu hết các hệ điều hành như windows, Unix
Trang 12(và nhiều biến thể của nó), Macintosh…Một điều cũng rất quan trọng là các mã kịch bản PHP viết trên máy chủ này sẽ làm việc bình thường trên các máy chủ khác mà không cần chỉnh sửa hoặc chỉnh sửa rất ít
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
Tại sao cần dùng PHP?
PHP được sử dụng để phát triển website động vì nó tốt, nhanh và dễ dàng nghiên cứu hơn các giải pháp khác PHP có khả năng thực hiện và tích hợp chặt chẽ với hầu hết các cơ sở dữ liệu có sẵn, tính năng bền vững linh động và khả
Trang 13năng phát triển không giới hạn Tất cả các đặc tính trên đều miễn phí vì PHP là
mã nguồn mở PHP vừa dễ với người mới sử dụng và vừa có khả năng làm được mọi thứ, đáp ứng yêu cầu của lập trình viên chuyên nghiệp
PHP được sử dụng càng ngày càng nhiều và mới đây đã bắt kịp ASP (vốn được xem là ngôn ngữ kịch bản phổ biến nhất hiện nay) PHP là modun thông dụng cho Apache (máy chủ Web phổ biến nhất) và nó đã có mặt trên 12 triệu website
b Sử dụng PHP
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 14Để 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”);
?>
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ẻ’]
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
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
Trang 15- 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ự
- 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
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 ()
Trang 16mộ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
- 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)
Trang 17biể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)
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;
}
Trang 18 Lưu trữ và truy vấn dữ liệu bằng PHP
- Mở file bằng PHP:
+ fopen(tên file, chế độ mở): mở file
+ puts(), fwrite(): ghi file
+ close(): Đóng file
+ feof(): Nhận giá trị true nếu con trỏ ở cuối file
+ file_exists(): Kiểm tra file có tồn tại
+ filesize(): kiểm tra dung lượng của file
- 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
Trang 19mysql_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ề
- 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);
1.3.2 Ưu và ngôn ngữ nhược điểm của PHP
- Hỗ trợ kết nối nhiều hệ cơ sở dữ liệu: MySQL, MS SQL, Oracle…
- Chạy trên nhiều hệ diều hành
- Cộng đồng của PHP được coi là khá lớn và có chất lượng
- Thư viện phong phú
Trang 20- Tính bảo mật khá an toàn
- Khả năng mở rộng cho PHP là không có giới hạn
- Luôn được cải tiến và cập nhật
MySQL được phát triển và hỗ trợ bởi công ty MySQL AB của Thụy Điển
Nó là hệ thống quản trị cơ sở dữ liệu (DBMS) cho các cơ sở dữ liệu quan hệ (vì vậy, MySQL là một RDBMS) Cơ sở dữ liệu là một tập hợp các dữ liệu có liên quan với nhau, có thể là văn bản, số hoặc các tập tin nhị phân được lưu trữ có tổ chức bởi DBMS
1.4.2 Đặc điểm của MySQL
MySQL là một phần mềm quản trị cơ sở dữ liệu dạng server-based (gần tương đương với SQL server của Microsoft)
MySQL quản lý dữ liệu thông qua các cơ sở dữ liệu, mỗi cơ sở dữ liệu có thể có nhiều bảng quan hệ chứa dữ liệu
MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng
có thể được quản lý một hoặc nhiều cơ sở dữ liệu khác nhau, mỗi người dùng có một tên truy cập (user name) và mật khẩu tương ứng để truy xuất đến cơ sở dữ liệu
Khi ta truy vấn tới cơ sở dữ liệu MySQL, ta phải cung cấp tên truy cập và mật khẩu của tài khoản có quyền sử dụng cơ sở dữ liệu đó Nếu không, chúng ta
sẽ không làm được gì cả
Trang 211.4.3 Các kiểu dữ liệu trong cơ sở dữ liệu MySQL
a) Loại dữ liệu numeric
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
b) Loại dữ liệu Date and Time
Date 1000-01-01 Date trình bày dưới dạng
YYYY-mm-dd
Trang 22Date 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
Trang 23c) Loại dữ liệu String
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
Trang 241.4.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)
- 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>]
Set <column>=<value>, [<column>=<value>]
[where <restrictive conditions>]
Trang 25d) Phát biểu Delete
Delete from <table_name> Where <condition>
Một số hàm thông dụng trong MySQL
+ 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
1.4.5 Ưu và nhược điểm của MySQL
Trang 26 Nhờ đội ngũ phát triển năng động, tích cực, các phiên bản Mysql ngày càng hoàn thiện bổ sung nhiều chức năng mới
MySQL là hệ quản trị CSDL mã nguồn mở phổ biến nhất thế giới.Đây là
hệ CSDL dùng cho các ứng dụng web vừa và nhỏ Tuy không phải là hệ quản trị CSDL lớn nhưng MySQL cũng có trình giao diện trên Wingdows hay Linux, cho phép người dùng thao tác các hành động liên quan đến CSDL
Cũng giống như các CSDL khác, khi làm việc với CSDL MySQL, ta đăng
kí kết nối, tạo CSDL, quản lý người dùng, phân quyền sử dụng, thiết kế đối tượng table của CSDL và xử lý dữ liệu
Để thao tác trên CSDL, ta có thể dùng trình quản lý dạng đồ hoạ hay dùng dòng lệnh (Command line) Tất nhiên, dùng hệ quản trị có hỗ trợ trình giao diện
đồ hoạ thì tiện lợi hơn.Tuy vậy, dù dùng dưới hình thức nào thì mục đích cũng là quản lý và thao tác trên CSDL
a) Câu lệnh cơ bản của MySQL
Hiển thị tất cả database trong mysql server:
SHOW DATABASES;
Tạo một database: CREATE DATABASE {tên database};
Ví dụ tạo một database có tên là "champiblog" như sau:
create database champiblog;
Xóa một database: DROP DATABASE {tên database};
Ví dụ khi muốn xóa database có tên là "champiblog"
Trang 27DROP DATABASE champiblog;
Tạo một bảng: CREATE TABLE [tên table] (cột 1, cột 2 );
Ví dụ muốn tạo một table có tên là "member" có hai cột dữ liệu là "userid" và
"username": CREATE TABLE member (userid int(7), username text);
Nhập dữ liệu vào bảng: INSERT INTO [tên table] ([cột 1],[cột 2], ) VALUES (giá trị 1, giá trị 2, );
Vị dụ nhập dữ liệu cho table "member" đã được tạo ở trên: INSERT INTO member (userid,username) VALUES (1,'champi');
Lấy dữ liệu từ table: SELECT {tên cột muốn hiển thị} FROM [tên table];
Ví dụ lấy tất cả các cột: SELECT * FROM member;
Hoặc là chỉ lấy 1 số cột nhất định: select username from member;
Sửa đổi dữ liệu trong table: UPDATE [tên table] SET [cột muốn sửa]='giá trị mới' WHERE [điều kiện] = 'giá trị';
Ví dụ muốn sửa tên thành viên "champi" thành "anh champi" (userid của
champi = 1): UPDATE member SET username='anh champi' WHERE userid = 1;
Đếm số data có trong table: SELECT COUNT FROM [tablename];
Ví dụ: SELECT COUNT FROM member;
Xóa dữ liệu: DELETE FROM [tablename] WHERE ;
Ví dụ: DELETE FROM member WHERE userid=1;
Xóa table: DROP TABLE [tên table];
Ví dụ :DROP TABLE member;
Trang 28CHƯƠNG II ĐỀ XUẤT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2.1 Khảo sát hiện trạng hệ thống
2.1.1 Tìm hiểu hiện trạng
a) Giới thiệu
Trường THPT Phú Lương
Hiệu trưởng: Cô Nguyễn Thị Thanh Hương
Địa chỉ: Tiểu khu Dương Tự Minh – Thị trấn Đu – Phú Lương – Thái Nguyên
Trường phổ thông cấp 3 Phú Lương nay là trường THPT Phú Lương được thành lập năm 1965 Thầy hiệu trưởng đầu tiên là Thầy Nguyễn Thanh Nước Từ những ngày cơ sở vật chất còn đơn sơ, trả qua 50 năm qua, dưới sự lãnh đạo của Sở GD& ĐT Thái Nguyên, các cấp ủy Đảng, chính quyền, địa phương, sự phối hợp chặt chẽ của các cơ quan ban ngành đoàn thể, sự ủng hội tích cực của các tầng lớp nhân dân trong Huyện, sự đoàn kết thống nhất và nỗ lực phấn đấu của tập thể thầy và trò, trường THPT Phú Lương đã vượt qua nhiều khó khăn thử thách, từng bước trưởng thành vươn lên hoàn thành xuất sắc nhiệm vụ
Những năm qua, trường THPT Phú Lương lớn mạnh không ngừng cả về
số lượng và chất lượng Được sự quan tâm của chính quyền, sự hỗ trợ tích cực của Sở Giáo dục và Đào tạo, cùng với sự năng nổ, nhiệt tình, hết lòng vì tập thể của Ban Giám hiệu, trường đã được sửa sang và xây dựng lại khang trang hơn, tạo điều kiện tốt cho thầy trò yên tâm dạy và học Với một đội ngũ giáo viên giàu kinh nghiệm và yêu nghề, với truyền thống hiếu học của học sinh, trường đã đạt được nhiều kết quả tốt Tỉ lệ học sinh tốt nghiệp hàng năm trung bình 95-99%, tỉ
lệ học sinh đỗ vào các trường CĐ-ĐH và các trường chuyên nghiệp ngày càng cao Trường cũng đạt vị thứ hạng cao trong các kì thi học sinh giỏi tỉnh
Với cơ sở khang trang, trang thiết bị dạy học đầy đủ, với năng lực, trình độ và phẩm chất của đội ngũ giáo viên, qua 50 năm xây dựng và trưởng thành, Trường THPT Phú Lương đã thực sự là địa chỉ tin cậy cho con em các dân tộc trên địa bàn huyện Phú Lương
b) Khảo sát nhu cầu thực tế
Hiện nay, với hơn 2000 học sinh và giáo viên, nhu cầu về chia sẻ tài liệu giữa giáo viên và học sinh, giữa học sinh và học sinh là rất lớn và ngày càng mở rộng Các tài liệu như sách vở, tài liệu tham khảo, hệ thống thư viện không đủ để đáp ứng nhu cầu này
Trang 29Có rất nhiều tài liệu do học sinh, giáo viên tự tổng hợp trong quá trình học tập và giảng dạy và muốn chia sẻ, nhưng chưa có 1 kênh thông tin nào đáp ứng được việc chia sẻ với tất cả các học sinh và giáo viên trong toàn trường, mà việc chia sẻ mới dừng lại ở 1 vài nhóm học sinh hoặc 1 vài lớp
Từ nhu cầu trên, vấn đề đặt ra là cần xây dựng 1 website cho phép giáo viên và học sinh có thể chia sẻ tài liệu học tập cho nhau và người quản lý có thể quản lý, thống kê được các tài liệu cũng như thành viên trên website đó
c) Yêu cầu trang web
Từ yêu nhu cầu thực tế, trường THPT Phú Lương rất mong muốn xây dựng 1 hệ thống nhằm đáp ứng nhu cầu tài liệu và chia sẻ tài liệu ngày càng lớn của học sinh Trường đã đặt vấn đề xây dựng website với mục đích:
- Thông qua website, giới thiệu, chia sẻ các tài liệu hay từ tất cả học sinh cũng như giáo viên trong nhà trường, giúp các em học sinh tiếp cận được với những tài liệu mới, đa dạng, bổ ích, là 1 kênh thông tin, truyền tải kiến thức giữa học sinh với học sinh, giữa giáo viên với học sinh Thông qua website, người quản lý có thể quản lý website, quản lý việc tải, đăng các tài liệu, quản lý thống kê các tài liệu
- Một số yêu cầu từ hệ thống:
+Đối với người dùng có các chức năng thực hiện trên website như sau:
Xem thông tin tài liệu
Upload, download tài liệu
Liên hệ
Tìm kiếm sản phẩm
+ Đối với người quản lý có các chức năng thực hiện trên website như sau:
Quản lý các danh mục tài liệu
Quản lý các tài liệu
Quản lý thành viên
Một số các yêu cầu khác:
Trang 30- Trang web phải đảm bảo một số yêu cầu cần thiết của người sủ dụng như:
- Danh mục tài liệu, tài liệu được sắp xếp một cách tuần tự rõ ràng, tìm kiếm một cách nhanh chóng…
Quy trình thực hiện tải tài liệu của người dùng
- Người dùng duyệt ứng dụng web trên trình duyệt
- Trình duyệt sẽ hiển thị các tài liệu và danh mục tài liệu các thành viên khác chia sẻ Người dùng có thể xem thông tin các tài liệu theo từng danh mục tài liệu hoặc có thể thực hiện chức năng tìm kiếm để tìm kiếm tài liệu
- Sau khi xem thông tin về các tài liệu, người dùng có thể tải tài liệu về nếu cảm thấy có bổ ích với bản thân bằng cách đăng nhập vào website Sau đó người dùng
có thể tiếp tục xem và chọn lựa, xem và tải các tài liệu khác
Quy trình upload tài liệu của người dùng
- Người dùng duyệt ứng dụng web và chọn chức năng upload tài liệu
- Nếu chưa đăng nhập, hệ thống sẽ yêu cầu người dùng, sau khi đăng nhập, người dùng điền vào form upload 1 số thông tin như tên tài liệu, ảnh đại diện và
mô tả ngắn về tài liệu, tài liệu Người dùng tải tài liệu lên và tài liệu sẽ ở trạng thái chờ người quản trị xét duyệt
Quy trình quản trị hệ thống của người quản trị
Người quản trị sẽ có một tài khoản để đăng nhập vào hệ thống, sau khi đăng nhập người quản trị có thể thực hiện một số chức năng như:
- Quản lý danh mục các loại tài liệu: Thêm, sửa, xóa các loại tài liệu
- Quản lý tài liệu: Thêm , sửa, xóa các tài liệu
- Quản lý thành viên: Thêm, sửa, xóa thành viên
- Quản lý các liên hệ của thành viên
- Quản lý slide ảnh, thông tin trên website
Trang 31 Quy trình tải tài liệu của người dùng
- Người dùng duyệt ứng dụng trên trình duyệt Web
- Trình duyệt sẽ hiển thị các tài liệu mà các thành viên trên hệ thống chia sẻ Người dùng có thể duyệt theo danh mục môn học hoặc có thể sử dụng chức năng tìm kiếm để tìm kiếm theo tên tài liệu
- Người dùng đăng nhập, sau khi tìm kiếm, tham khảo các thông tin về tài liệu, người dùng có thể đi đến quyết định là tải tài liệu nào đó Sau đó người dùng có thể tiếp tục xem các tài liệu khác hoặc tiến hành upload tài liệu
- Người dùng có thể upload tài liệu và chờ xét duyệt của người quản trị để tài liệu
đó được cho phép hiển thị trên hệ thống và xem các tài liệu mà mình đã upload lên
- Các thông tin cần hiển thị trên trang chủ của ứng dụng: Danh mục tài liệu, tài liệu mới, một vài chức năng như: tìm kiếm, đăng ký, đăng nhập, quản lý thông tin cá nhân,
- Các thông tin về tài khoản của người dùng bao gồm: Điạ chỉ email, mật khẩu truy nhập, SĐT, địa chỉ, mô tả, phân quyền
- Mỗi tài liệu có các thông tin sau: tên tài liệu, thuộc danh mục nào nào, ảnh đại diện, file đính kèm, quyền xem
- Quản lý tài liệu gồm: Tên tài liệu, số lượt tải, số lượt xem, tình trạng, hành động
Quy trình thực hiện quản trị hệ thống của quản trị viên
Để truy cập vào chức năng quản trị hệ thống, Quản trị viên cần có một tài khoản để truy nhập Sau khi truy nhập quản trị viên có thể thực hiện các chức năng sau:
- Quản lý thành viên: Thêm, sửa, xóa các thành viên
- Quản trị danh mục: bao gồm các công việc thêm, xoá, cập nhật thông tin về các loại tài liệu
Trang 32- Quản lý thành viên: Thêm, xoá, cập nhật thông tin về thành viên
- Thống kê báo cáo: Xem thống kê, xuất file thống kê
- Quản lý slide: Thêm, sửa, xóa ảnh
2.1.2 Các thông tin vào ra của hệ thống
Các thông tin đầu vào
- Các thông tin giới thiệu về nhà trường
- Các thông tin về từng loại tài liệu, danh mục tài liệu
- Các thông tin về người dùng
- Các thông tin về tài liệu tải về
Các thông tin đầu ra
- Các thông tin giới thiệu về hệ thống, giới thiệu về trường
- Các thông tin về từng loại tài liệu và từng tài liệu
- Các thông tin tra cứu, các ảnh slide
- Các phản hồi của người quản trị đối với những người dùng upload tài liệu lên hệ thống
2.2 Phân tích thiết kế hệ thống
2.2.1 Biểu đồ Use Case
Xác định các tác nhân và use case
- Quản lý thông tin cá nhân
- Quản lý tài liệu
- Tìm kiếm tài liệu
- Xem chi tiết tài liệu
- Upload tài liệu