Tải bản đầy đủ (.pdf) (61 trang)

Xây dựng hệ thống hỗ trợ phân công, quản lý lịch cho giáo viên trường đại học công nghệ thông tin và truyền thông

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.74 MB, 61 trang )

LỜI CẢM ƠN
Trước tiên em xin gửi lời cám ơn chân thành 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 Công Nghệ Phần
Mềm 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. Nguyễn Thu Phương
đã tận tình hướng dẫn, trực tiếp chỉ bảo em trong suốt thời gian làm thực tập
tốt nghiệp. 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 từ cô mà còn học được tinh thần làm việc, thái độ tìm
tìm hiểu học tập 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.
Công việc quản lý lịch giảng dạy và sắp xếp lịch thi là một công việc
thường xuyên trong mỗi kì học của giảng viên và trưởng bộ môn. Hiện nay
việc quản lý bằng file excel tải từ website của nhà trường là khó khăn, giao
diện không trực quan. Bên cạnh đó việc tìm kiếm giảng viên không trùng lịch
dạy để sắp xếp coi thi nếu làm bằng tay là một công việc khó khăn đòi hỏi
thời gian lớn. Chính vì vậy nhu cầu cần thiết một công cụ để hỗ trợ việc quản
lý lịch giảng dạy và sắp xếp lịch coi thi là vô cùng cần thiết.
Bên cạnh đó việc sử dụng dữ liệu từ file excel là khó khăn để phát triển
các ứng dụng hỗ trợ. Với mục tiêu số hóa dữ liệu lịch giảng dạy và lịch coi thi
của giảng viên bằng cơ sở dữ liệu nhằm mục đích cung cấp dữ liệu cho phát
triển các ứng dụng sử dụng dữ liệu lịch giảng dạy của giảng viên.
Với mục tiêu và lý do như trên nên em chọn đề tài “Xây dựng hệ thống
hỗ trợ phân công, quản lý lịch cho giáo viên trường Đại Học Công Nghệ
Thông Tin và Truyền Thông”. Em hi vọng trong quá trình tìm hiểu xây
dựng đề tài có thể giúp bản thân có thêm nhiều kiến thức bổ ích phục vụ cho

1



quá trình học tập và làm việc sau này. Trong quá trình làm đề tài còn nhiều
thiếu xót và hạn chế em mong nhận được sự đóng góp ý kiến của quý thầy cô
để em có thể hoàn thành tốt nhất mọi công việc.
Do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mình nhưng đề tài đồ án
tốt nghiệp 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 để đồ án tốt nghiệp của
em được hoàn thiện hơn.
Em xin chân thành cảm ơn!
Thái nguyên, ngày .... tháng .... năm 2016
Sinh viên

Bùi Văn Hiếu

2


LỜI CAM ĐOAN
Em xin cam đoan rằng đây là bài đồ án tốt nghiệp của em, được sự
hướng dẫn từ Giáo viên Th.S Nguyễn Thu Phương – giảng viên trường đại
học Công nghệ thông tin và truyền thông Thái Nguyên, Đại học Thái Nguyên,
các nội dung nghiên cứu và kết quả trong đề tài này là trung thực và không
sao chép từ các báo cáo thực tập và đồ án khác trước đây. Những số liệu trong
các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính bản
thân thu thập từ các nguồn khác nhau đã được chỉ dẫn trong tài liệu tham
khảo. Nếu có bất kỳ sự gian lận nào em xin hoàn toàn chịu trách nhiệm trước
hội đồng.
Thái nguyên, ngày .... tháng .... năm 2016
Sinh viên

Bùi Văn Hiếu


3


MỤC LỤC
LỜI CẢM ƠN ................................................................................................ 1
LỜI CAM ĐOAN .......................................................................................... 3
MỤC LỤC ..................................................................................................... 4
LỜI NÓI ĐẦU ............................................................................................... 7
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI ...................................................... 8
1.1. Đặt vấn đề .......................................................................................... 8
1.1.1 . Mục đích xây dựng đề tài ........................................................... 8
1.1.2. Phạm vi đề tài ............................................................................... 8
1.2. Cở sở lý thuyết ................................................................................... 8
1.2.1. Cakephp Framwork ...................................................................... 8
1.2.2. Ngôn ngữ HTML........................................................................ 13
1.2.3. Ngôn ngữ Javascript ................................................................... 15
1.2.4. Ngôn ngữ PHP ............................................................................ 16
1.2.5. Hệ quản trị CSDL MySQL ......................................................... 20
1.2.6. Công nghệ Responsive Boostrap ................................................ 21
1.2.7. Json ............................................................................................ 27
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ ........................................................ 28
2.1. Khảo sát hệ thống .............................................................................. 28
2.1.1. Thực trạng việc phân công của bộ môn CNPM........................... 28
2.1.2. Phần mềm quản lý lịch hiện nay ................................................. 29
2.1.3. Mô tả hệ thống............................................................................ 29
2.1.4. Một số bảng biểu kèm theo......................................................... 30
2.2. Mục tiêu của đề tài ............................................................................ 31

4



2.3. Các yêu cầu chức năng của hệ thống ................................................. 31
2.4. Phân tích thiết kế ............................................................................... 32
2.4.1. Biểu đồ Use case ........................................................................ 32
2.4.2. Biểu đồ cộng tác ......................................................................... 37
2.4.3. Biểu đồ trình tự........................................................................... 40
2.4.4. Biểu đồ lớp ................................................................................. 44
2.4.5. Thiết kế cơ sở dữ liệu ................................................................. 45
2.4.6. Thiết kế API ............................................................................... 46
CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH................................................. 48
3.1. Giao diện trang đăng nhập ................................................................. 48
3.2.Giao diện trang import lịch giảng dạy................................................. 49
3.3.Giao diện trang xem lịch giảng dạy .................................................... 49
3.4. Giao diên trang import kế hoạch thi................................................... 50
3.5.Giao diện trang sắp xếp lịch thi .......................................................... 50
3.6.Giao diện đăng nhập trang quản trị ..................................................... 51
3.7. Giao diện menu quản trị .................................................................... 51
3.8. Ứng dụng sử dụng api – ICTU SOCIAL............................................ 53
KẾT LUẬN.................................................................................................. 58
TÀI LIỆU THAM KHẢO ............................................................................ 60

5


DANH MỤC HÌNH
Hình 2.1 cấu trúc thư mục của cakephp........................................................ 10
Hình 2. 2 Sơ đồ hoạt động của cakephp........................................................ 11
Hình 2.3: Cấu trúc thư mục của bootstrap .................................................... 23
Hình 2.4: Ví dụ về Bootstrap........................................................................ 24

Hình 2.5: Ví dụ về Bootstrap........................................................................ 26
Hình 3.1: Lịch giảng dạy được sử dụng mẫu ................................................ 30
Hình 3.2: Lịch thi được sử dụng mẫu ........................................................... 31
Hình 3.3: Biểu đồ use case user.................................................................... 33
Hình 3.4: Biểu đồ user tài khoản trưởng bộ môn .......................................... 34
Hình 3.5: Biểu đồ use case Admin ............................................................... 35
Hình 3.6: Biểu đồ UC đăng nhập.................................................................. 37
Hình 3.7: Biểu đồ Use case import lịch giảng dạy ........................................ 38
Hình 3.8: Biểu đồ Use case xem lịch giảng dạy............................................ 38
Hình 3.9: Biểu đồ Use case Import kế hoạch thi........................................... 38
Hình 3.10: Biểu đồ Use case sắp xếp lịch thi................................................ 39
Hình 3.12: Biểu đồ trình tự đăng nhập.......................................................... 40
Hình 3.13: Biểu đồ trình tự import lịch giảng dạy ........................................ 41
Hình3.14: Biểu đồ trình tự xem lịch giảng dạy............................................. 41
Hình 3.15: Biểu đồ trình tự import kế hoạch thi ........................................... 42
Hình 3.17: Biểu đồ trình tự xem lịch thi ....................................................... 43
Hình 3.18: Biểu đồ lớp ................................................................................. 44
Hinh 3.19. Thiết kế cơ sở dữ liệu ................................................................. 45
Hình 4.1: Giao diện trang đăng nhập ............................................................ 48
Hình 4.4: Giao diện import kế hoạch thi....................................................... 50
Hình 4.5: Giao diện sắp xếp lịch thi ............................................................. 51
Hình 4.6: Giao diện đăng nhập trang quản lý................................................ 51
6


LỜI NÓI ĐẦU
Tổng quan về vấn đề nghiên cứu
Lý do chọn đề tài
Dựa trên tình hình thực tế về việc quản lý giảng viên và phân công coi thi
ở bộ môn công nghệ phần mềm. Hiện tại việc giảng viên tự quản lịch cá nhân

thông qua giấy tờ hoặc quản lý file excel trên máy tính. Việc thay đổi lịch
trong quá trình giảng dạy là rất khó và khi phân công thi vẫn còn tính trạng
trùng lịch thi và khó khăn cho người phân công. Hiện tại có một số hệ thống
quản lý nhưng chưa đáp ứng được nhu cầu thực tế.
Mục tiêu nghiên cứu
Mục tiêu của đề tài là xây dựng ra hệ thống quản lý lịch giảng viên, hỗ
trợ tích cực trong quá trình phân công lịch thi.
Giúp giảng viên xem và cập nhật lịch cá nhân nhanh chóng tiện lợi.
Cán bộ phân công coi thi được hỗ trợ tiện lợi, dễ dàng, đảm bảo không
trùng lịch của giảng viên.

7


CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1. Đặt vấn đề
Từ thực tế quá trình quản lý lịch cá nhân của giảng viên. Sự trùng chéo
khi phân công coi thi và khó khăn khi xem lịch giảng dạy của giảng viên.
Để cho quá trình quản lý lịch cá nhân trở nên đơn giản và số hóa hỗ trợ
giảng viên trong quá trình cập nhật và quản lý lịch của bản thân em đưa ra
quyết định chọn đề tài: “Xây dựng hệ thống hỗ trợ phân công, quản lý lịch
cho giáo viên trường Đại Học Công Nghệ Thông Tin và Truyền Thông”.
1.1.1. Mục đích xây dựng đề tài
Xây dựng hệ thống website cho phép import và quản lý lịch giảng dạy của
giảng viên. Từ dữ liệu về lịch giảng dạy của giảng viên hỗ trợ quá trình phân
công lịch thi đảm bảo không bị trùng lặp.
1.1.2. Phạm vi đề tài
Hệ thống áp dụng cho trường Đại Học Công Nghệ Thông Tin và Truyền
Thông và các trường đại học sử dụng chung mấu biểu trong khối đại học Thái
Nguyên.

1.2. Cở sở lý thuyết
1.2.1. Cakephp Framwork
CakePHP là một Framework cho php . Mục đích của nó là cung cấp một
framework cho người sử dụng php phát triển những ứng dụng web nhanh,
mạnh mẽ, linh họat và điều quan trọng là CakePHP là một OpenSource. Để sử
dụng nó, yêu cầu người làm phải biết những kiến thức như: Cơ bản về PHP và
HTML, Kiến trúc MVC, Lập trình hướng đối tượng.
Một số tính năng của CakePHP :
• Nguồn mở, miễn phí, có cộng đồng sử dụng và hỗ trợ rộng lớn
• Tương thích PHP4 và PHP5
8


• Mô hình MVC
• Đa ngôn ngữ
• Sinh code tự động
• Caching
• Phân quyền (ACL)
• Kiểm tra ràng buộc dữ liệu
• Xây dựng nhiều thư viện hỗ trợ cho View như: Ajax, HTML Form,
Javascript…
• Xây dựng nhiều thư viện hỗ trợ cho Controller: Email, Security,
Session, Cookies, Request Handling
• Dễ dàng viết thêm thư viện hỗ trợ, liên kết với ứng dụng khác (thông
qua vendors)
• Đa giao diện
• Hỗ trợ nhiều hệ quản trị CSDL
Cấu trúc thư mục CakePHP
Sau khi tải và giải nén CakePHP, bạn có thể thấy các files và thư mục
sau


:

app: là nơi chứa mã nguồn ứng dụng của bạn (phần này quang
trọng)
cake: là nơi chứa mã nguồn của CakePHP. Bạn không nên chỉnh
sửa các files trong thư mục này nếu bạn không hiểu rõ về chúng
vendors: chứa ứng dụng của bên thứ 3, phục vụ cho ứng dụng của
bạn
plugins: chứa các thành phần mở rộng dùng cho ứng dụng

9


Hình 2.1 cấu trúc thư mục của cakephp
Ghi chú :
Config Chứa file cấu hình hệ thống
Controllers Chứa các controller và component
Locale Chứa file ngôn ngữ , phục vụ cho ứng dụng đa ngôn ngữ
Molels Chứa file Model và behavor, datasource
Plugins Chứa các gói mở rộng
TmpThư mục tạm của ứng dụng
Vendors Chứa ứng dụng của bên thứ 3
Views Chứa các file giao diện
Webroot Chứa tài liệu (hình ảnh,file..), file CSS , file javascript…
Kiến trúc CakePHP
CakePHP hoạt động theo mô hình MVC

10



Mô hình này chia ứng dụng ra làm 3 phần chính:
• Model
• View
• Controller
Cách hoạt động chung của CakePHP trên mô hình MCV.

Hình 2. 2 Sơ đồ hoạt động của cakephp
Ví dụ về mô hình MVC căn bản :
Ta có liên kết />- User A click vào 1 liên kết có dạng :


Trình duyệt sẽ gởi yêu cầu tới server



Bộ phận điều vận Dispatcher(một thành phần của CakePHP) kiểm tra
phần tử products/view/10và gởi yêu cầu tới controller tương

- Tham số thứ 1 : ta có Controllerproduct
- Tham số thứ 2 : ta có view là tên của 1 action của Controllerproductsẽ được
gọi để thực thi 1 hành động nào đó
- Tham số thứ 3 : ta có 1 giá trị 10, thông thường tham số thứ 3 có thểm có
hoặc không, tùy vào mục đích sử dụng, ở đây tôi có tham số = 10 để xem sản
phẩm có id = 10

11


Cài đặt cakephp

Yêu cầu hệ thống :
 Hệ điều hành Windown hoặc Linux
 Hệ quản trị CSDL MySQL
Chuẩn bị cài đặt
Dowload phiên bản mới nhất tại địa chỉ:
/>- Giải nén, cho vào thư mục của web server
- Trong ví dụ này thư mục websever gốc là :C://xampp/htdocs
- Vậy ta có cấu trúc như sau :C://xampp/htdocs/cakephp

Sau khi cài đặt thành công truy cập vào đường dẫn như hình

12


1.2.2. 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

13


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.
Phầ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:
<HTML>
<HEAD>

<TITLE> tên trang <TITLE>
Các thẻ tiêu đề khác

14


</HEAD>
<BODY>
Văn bản và các thẻ của trang Web
</BODY>
</HTML>
1.2.3. Ngôn ngữ Javascript
JavaScript là một ngôn ngữ lập trình kịch bản dựa trên đối tượng được
phát triển từ các ý niệm nguyên mẫu.Ngôn ngữ này được dùng rộng rãi cho
các trang web, nhưng cũng được dùng để tạo khả năng viết script sử dụng các
đối tượng nằm sẵn trong các ứng dụng. Giống Java, JavaScript có cú pháp
tương tự C, nhưng nó gần với Self hơn Java. .js là phần mở rộng thường được
dùng cho tập tin mã nguồn JavaScript.
Javascript là ngôn ngữ dưới dạng script có thể gắn với các file HTML.
Nó không được biên dịch mà được chương trình duyệt diễn dịch.Không giống
Java phải chuyển thành mã để trình duyệt biên dịch, trình duyệt đọc Javascript
dưới dạng mã nguồn. Chính vì vậy, ta có thể dễ dàng học Javascript qua các
ví dụ bởi ta có thể thấy cách sử dụng Javascript trên các trang web.
Javascript có khả năng đáp ứng các sự kiện như tải hay loại bỏ các
form.Khả năng này cho phép Javascript trở thành ngôn ngữ script động.
Giống với HTML và Java, Javascript được thiết kế độc lập với hệ điều
hành.Nó có thể chạy trên bất kì hệ điều hành nào có hỗ trọ Javascript. Ngoài
ra, Javascript còn giống Java ở khía cạnh an ninh là không thể đọc và viết vào
file của người dùng.
Cũng giống như C, JavaScript không có bộ xử lý xuất/nhập

(input/output) riêng.Trong khi C sử dụng thư viện xuất/nhập chuẩn,
JavaScript dựa vào phần mềm ngôn ngữ được gắn vào để thực hiện xuất/nhập.

15


Hiện nay, JavaScript được sử dụng rất nhiều trong việc thiết kế trang
web động và một số hiệu ứng Hình ảnh thông qua DOM. Ngoài ra, JavaScript
còn được dùng để thực hiện một số tác vụ không thể thực hiện được với chỉ
HTML như kiểm tra thông tin nhập vào, tự động thay đổi Hình ảnh,... Ở Việt
Nam, JavaScript còn được ứng dụng để làm bộ gõ tiếng Việt. Tuy nhiên, mỗi
trình duyệt áp dụng JavaScript khác nhau và không tuân theo chuẩn W3C
DOM, do đó trong rất nhiều trường hợp lập trình viên phải viết nhiều phiên
bản của cùng một đoạn mã nguồn để có thể hoạt động trên nhiều trình duyệt.
1.2.4. Ngôn ngữ PHP
PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ
lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các
ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó
rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML. Do được tối
ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và
Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các
ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web
phổ biến nhất thế giới.
Ngày nay, PHP đã được sử dụng rộng rãi và phổ biến nhất để xây dựng
các các trang web động. Chúng ta có thể thấy trên nhiều diễn đàn, các cổng
thông tin Portal, các website cá nhân được thiết kế bằng mã nguồn mở của
PHP. Vì thế mà PHP đang có một chỗ đứng vững chắc trong thế giới các ngôn
ngữ lập trình web.
Xuất phát từ thực tế trên, đặc biệt là những ưu thế mà PHP đem lại, em
đã quyết định lựa chọn ngôn ngữ này để thực hiện đề tài xây dựng website du

lịch mà em đã nghiên cứu trong quá trình thực tập

16


a) Cú pháp căn bản của PHP
Như đã trình bày, PHP dựa trên cú pháp của ngôn ngữ lập trình C nên về
cơ bản cú pháp của nó tương tự như C. Ngoài ra, để lập trình bằng PHP ta cần
lưu ý mấy điểm sau:
 Cuối mỗi câu lệnh phải có dấu ;
 Biến trong PHP có tiền tố là $.
 Khai báo biến không có kiểu dữ liệu.
 Khai báo biến có phân biệt chữ hoa và chữ thường.
 Nên có giá trị khởi tạo cho biến khai báo.
 Mỗi phương thức đều được bắt đầu bằng dấu { và kết thúc bằng }.
 Phải có ghi chú cho mỗi feature mới.
 Để giải thích cho mỗi ghi chú ta dùng dấu // hoặc #.
 Sử dụng /* để mở đầu và */ kết thúc cho mỗi đoạn ghi chú.
b) Kiểu dữ liệu
PHP hỗ trợ 8 kiểu dữ liệu chính:
 4 kiểu dữ liệu vô hướng: boolean, integer, float (double), string.
 2 kiểu dữ liệu tổ hợp: array, object.
 2 kiểu dữ liệu đặt biệc: resource, NULL.
c) Biến
Một biến trong PHP được bắt đầu bằng ký tự $ và đi theo ngay sau đó là
tên của biến. Ví dụ: $a: biến có tên là a.
d) Câu lệnh
Do cú pháp của PHP dựa trên ngôn ngữ C nên các câu lệnh điều khiển của
nó cũng hoạt động tương tự như trong C. Các câu lệnh điều khiển trong PHP:


17


 If (điều kiện) {câu lệnh;}
 If (điều kiện) {câu lệnh;} else {câu lệnh;}
 If (điều kiện) {câu lệnh;} elseif {câu lệnh;}
 For (biểu thức 1; biểu thức 2; biểu thức 3) câu lệnh;
 While (điều kiện)
 Do … while (điều kiện)
 Break
 Continue
 Switch (điều kiện)
{
case value1
câu lệnh 1;
break;

}
e) Hàm
Hàm do người dùng định nghĩa
Trong lập trình, có một số đoạn mã được dùng nhiều lần ở nhiều nơi khác
nhau trong chương trình. Sẽ rất phiền và khó sửa lỗi nếu như ta phải viết lặp đi
lặp lại 1 đoạn mã đó ở nhiều nơi. PHP cung cấp một giải pháp đó là hàm do
người dùng định nghĩa. Ta có thể đưa đoạn mã đó vào trong 1 hàm, và ở chỗ
nào cần dùng đoạn mã đó ta chỉ cần gọi hàm, khi cần sửa đổi, ta chỉ cần sửa đổi
1 chỗ duy nhất là nội dung của hàm chứ không cần phải sửa ở nhiều nơi trong
chương trình.
Cú pháp để tạo 1 hàm do người dùng định nghĩa như sau:
function tênHàm($tham_số1, $tham_số2, ..., $tham _sốn) {
18



//thân hàm
echo "Testing";
return $kết_quả_trả_về;
} //end
Khi cần sử dụng hàm ở chỗ nào, ta chỉ cần dùng cú pháp tênHàm(các
tham số cần thiết);
 Tham số của hàm
Hàm có thể nhận vào các tham số, ví dụ:
function testing($a) {
echo "Tham số là $a";
} //end testing
testing(123);
testing("abc");
?>
Ở ví dụ trên, lời gọi hàm testing(123); sẽ in ra dòng Tham số là 123 và
lời gọi hàm testing("abc"); sẽ in ra dòng Tham số là abc.
Khi tham số của hàm không được truyền, nó sẽ nhận giá trị mặc định. Ta
có thể gán giá trị mặc định cho tham số của hàm:
function testing($a="mặc định") {
echo "Tham số là $a";
} //end testing
testing();
?>

19



1.2.5. Hệ quản trị CSDL MySQL
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"
DROP 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);

20




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;
1.2.6. 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).

21


 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…

22


 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: />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 2.3: 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.

23


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:

Hình 2.4: Ví dụ về Bootstrap

24


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:

25


×