IX. Một số thẻ đặc biệt
d. Chuyển đổi giá trị thời gian
Ví dụ: Khi nhập ngày – tháng – năm ở PHP như sau: 25th January 2009 thì khi lưu trữ vào CSDL MySQL chúng sẽ được định nghĩa như sau: 2009-01-25
Khi nhập ngày tháng năm từ PHP vào MySQL ta có thể dùng hàm date() đã học hoặc sử dụng hàm DATE_FROMAT() trong MySQL
Để định dạng ngày tháng năm YYYY-MM-DD của MySQL sang định dạng MM-DD- YYYY có thể dùng hàm DATE_FORMAT() với Cú pháp như sau:
SELECT DATE_FORMAT (column_date ‘%M-%D-%Y’) Hay
SELECT DATE_FORMAT (column_date, %M %D %Y)
Trong đó: %M và %D là định dạng tháng và ngày với 2 ký số, %Y là định dạng năm với 4 ký số.
Chú ý: Chúng ta cũng có thể căn cứ vào bảng định dạng thời gian sau để định dạng theo yêu câu:
Ký tự Mô tả
%M Tên tháng trong năm(January, February…) %W Tên thứ trong tuần (Sunday, Monday,…) %D Ngày trong tháng theo dạng 1st, 2nd, 3th… %Y Năm với 4 ký số(2010)
%y Năm với 2 ký số(10)
%m Tháng với hai ký số (01-12)
%d Ngày trong tháng với hai ký số (01-31) %H Giờ trong ngày với hai ký số(00-23) %h Giờ trong ngày với hai ký số(00-12) %i Phút trong giờ với hai ký số(01-59)
%r 12 giờ với định dạng (hh:mm:ss [AM|PM]) %T 12 giờ với định dạng (hh:mm:ss)
%S Giây trong phút có hai ký số (00-59)
%p AM hay PM
3. Lưu trữ dữ liệu mới vào CSDL
Để lưu thông tin từ trong PHP vào trong MySQL, chúng ta sẽ sử dụng hàm mysql_query()
kết hợp với câu lệnh truy vấn INSERT INTO. Hàm này được dùng để gửi một truy vấn(hiển thị thông tin, thêm mới, xóa, cập nhật) tới một kết nối MySQL
Cú pháp:
INSERT INTO table_name
VALUES (value1, value2, value3,...) Hoặc
INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...)
Chú ý: Cú pháp INSERT INTO dùng để thêm một mẫu tin mới vào bảng trong CSDL
Ví dụ: Tạo form nhập thông tin của một mẫu tin(form_insert.php)
Các tên tương ứng • masv • tensv • d, m, y • gt • quequan • namhoc • lophoc
Ví dụ: Trang lấy thông tin từ form (insert_sinhvien.php)
<?php $masv = $_POST['masv']; $tensv = $_POST['tensv']; $d = $_POST['d']; $m = $_POST['m']; $y = $_POST['y']; $gt = $_POST['gt']; $quequan = $_POST['quequan']; $namhoc = $_POST['namhoc']; $lophoc = $_POST['lophoc']; // xu ly dl ngay thang nam if (checkdate($m,$d,$y)) {
$ngaysinh =$d."/".$m."/".$y; }
// kiem tra xem trong csdl co masv nay chua function kt($masv)
{
$conn = mysql_connect("localhost","root",""); mysql_select_db("khoacntt",$conn);
$kt1=true;
while ($row = mysql_fetch_array($result)) { $kt1=false; } return $kt1; mysql_close($conn); } if (kt($masv)&& checkdate($m,$d,$y)) { $conn = mysql_connect("localhost","root",""); mysql_select_db("khoacntt",$conn);
$sql = "INSERT INTO sinhvien
VALUES('$masv','$tensv','$ngaysinh','$gt','$quequan','$namhoc','$lophoc')"; mysql_query($sql);
}
?>
4. Cập nhật dữ liệu
Để cập nhật thông tin từ PHP vào MySQL, chúng ta sẽ sử dụng hàm mysql_query() kết hợp với câu lệnh truy vấn UPDATE. Hàm này được dùng để gửi một truy vấn (hiển thị thông tin, thêm mới, xóa, cập nhật) tới một kết nối MySQL
Cú pháp:
UPDATE table_name
SET column1=value, column2=value2,... WHERE some_column=some_value
Ví dụ: Form cập nhật dữ liệu bảng sinh viên
- Mã sinh viên được đọc từ CSDL với tên listbox là masv.
- Tên sinh viên mới có tên textfield là tensv
Ví dụ: Trang lấy thông tin từ form cập nhật dữ liệu
$conn = mysql_connect("localhost","root",""); mysql_select_db("khoacntt", $conn); if(strlen($_POST['tensv'])) { $tensv = trim($_POST['tensv']); $masv = trim($_POST['masv']);
mysql_query("UPDATE sinhvien SET ten_sv = '$tensv' WHERE ma_sv = '$masv'"); }
mysql_close($conn);
?>
5. Xóa dữ liệu
Để xóa thông tin trong CSDL thông qua PHP, chúng ta sẽ sử dụng hàm mysql_query() kết hợp với câu lệnh truy vấn DELETE. Hàm này được dùng để gửi một truy vấn (hiển thị thông tin, thêm mới, xóa, cập nhật) tới một kết nối MySQL
Cú pháp:
DELETE FROM table_name
WHERE some_column = some_value
Ví dụ: Form xóa dữ liệu trong bảng sinhvien
- Chọn mã sinh viên cần xóa có tên listbox là masv, value được lấy trong CSDL
Ví dụ: Lấy thông tin từ form và xóa dữ liệu trong bảng sinh viên
<?php $conn = mysql_connect("localhost","root",""); mysql_select_db("khoacntt", $conn); if(strlen($_POST['masv'])) { $masv = trim($_POST['masv']);
mysql_query("DELETE FROM sinhvien WHERE ma_sv = '$masv'"); }
mysql_close($conn);
III. PHP kết hợp với các CSDL SQL Server
Bước 1: Mở Administrative Tools trong control Panel
Bước 2: Trong cửa sổ Administrative Tools chọn biểu tượng Data Sources(OBBC) Bước 3: Trong cửa sổ ODBC Data Sources Administrator chọn tab System DSN
Bước 4: Nhấn vào nút Add chọn SQL Server chọn Finsh
Bước 5: Đặt tên cho Data Source (DSN) trong mục Name và chọn server cần kết nối tới trong mục server => nhấn nút next
Xác định cách thức kết nối tới SQL Server theo tài khoản của Window NT hay tài khoản của SQL Server => Nhấn nút next
Bước 6: Lựa chọn CSDL cần kết nối của SQL Server trong mục Change Default Database to => nhấn nút Next sau đó nhấn nút Test Data Source để kiểm tra việc kết nối với nguồn dữ liệu có thành công hay không => nhấn nút OK
IV. Xây dựng các lớp xử lý
1. Một số phương thức trong lớp xử lý bảng
Lớp xử lý bảng dùng để xử lý các công việc liên quan tới kết nối, chọn CSDL và làm việc với CSDL,…
class connect_database {
// khai báo các thuộc tính
// xây dựng các phương thức lớp xử lý bảng }
a. Khai báo thuộc tính
Trong lớp xử lý bảng có một số thuộc tính thường xuyên được sử dụng nên chúng ta cần phải khai báo:
var $_sql ="";
var $_connection =""; var $_result =""; Trong đó:
+ $_sql : chứa nội dung của câu lệnh truy vấn
+ $_connection: chứa kết quả của hàm kết nối mysql_connect() + $_result: chứa kết quả của hàm mysql_query()
b. Kết nối CSDL
Trong hàm khởi tạo của lớp connect _database khai báo các thông tin kết nối đến CSDL. {
// Tạo và kiểm tra kết nối
$this ->_connection =@mysql_connect("localhost","root",""); // chọn CSDL
$db ="name_database";
mysql_select_db($db, $this->connection) }
c. Gán giá trị cho thuộc tính $_sql
Hàm này sẽ gán giá trị cho thuộc tính $sql của lớp xử lý bảng function setquery($sql)
{
}
d. Lấy toàn bộ các dòng dữ liệu trong bảng
Hàm này có kết quả trả về là biến con trỏ chứa kết quả là các dòng dữ liệu trong bảng function query()
{
$this->_result =mysql_query($this->_sql,$this->_connection); return $this->_result;
}
Sau đó chuyển kết quả của biến $_result (gọi hàm query()) này vào mảng các dòng dữ liệu bằng hàm loadAllRow() function loadAllRow() { if(!($result = $this->query())) { return null; }$array =array();
while ($row =mysql_fetch_assoc($result)) { $array[] =$row; } mysql_free_result($result); return $array; } e. Đóng kết nối
Hàm này được dùng để đóng kết nối đang được mở function close_connect()
{
mysql_close($this->_connection); }
2. Xây dựng lớp xử lý nghiệp vụ
Lớp xây dựng nghiệp vụ có các thành phần riêng của lớp đó. Lớp này kế thừa từ lớp xử lý bảng và có các hàm đọc, thêm, cập nhật, xóa dữ liệu.
class process_class extends connect_database {
// các thuộc tính // các phương thức } a. Các phương thức thường sử dụng - Đọc dữ liệu function doc_ds() {
$this ->setQuery("SELECT * FROM name_table"); $result = $this->LoadAllRow();
$this->close_connect(); $return $result;
}
- Thêm dữ liệu
function them_moi(danh sach tham so) {
$this ->setQuery("INSERT INTO name_table VALUES (gia tri) "); $result = $this->query();
$this->close_connect(); $return $result;
}
- Cập nhật dữ liệu
function cap_nhat(danh sach tham so) {
$this ->setQuery("UPDATE name_table SET name_column=value, ..."); $result = $this->query();
$this->close_connect(); $return $result;
}
- Xóa dữ liệu
function xoa(danh sach tham so) {
$this ->setQuery("DELETE FROM name_table WHERE ..."); $result = $this->query();
$return $result; }
b. Các phương thức riêng cho các lớp
Ngoài các phương thức thường dùng được nêu ở trên, mỗi lớp xử lý nghiệp vụ còn có những phương thức đặc trưng, riêng biệt khác. Tùy theo yêu cầu mà chúng ta sẽ xây dựng các phương thức này.
Mục lục
MỤC LỤC...1
Chương 1: Quy trình thiết kế website...6
I.Các khái niệm cơ bản...6
1. HTML (Hypertext Markup Language) – Ngôn ngữ đánh dấu siêu văn bản...6
2. Ngôn ngữ lập trình Web...6
3. WebServer – trình chủ Web...6
4. Database server – Trình chủ CSDL...6
5. Web browser-Trình duyệt Web...6
6. URL (Uniform Resource Locator)- Tài nguyên trên Internet...6
7. HTTP (Hypertext Transfer Protocol)- Giao thức truyền siêu văn bản...7
8. Cơ chế Web...7
II.Quy trình thiết kế website...8
1. Xác định mục đích, yêu cầu của website...8
2. Xác định độc giả...8
3. Thiết kế giao diện Website...9
a. Xác định kiểu chữ, màu sắc...9
b. Xác định các kỹ thuật, công cụ thiết kế...9
c. Cắt đoạn, tóm lược thông tin...9
d. Xác định cấu trúc WebSite...9
4. Các thành phần cơ bản của Website...11
a. Trang chủ (HomePage)...11
b. Hệ thống Menu, Logo, định danh...11
c. Các trang thành viên...11
III.Một số nguyên tắc khi phát triển website...11
Chương 2: Giới thiệu về ngôn ngữ HTML...15
I. Khái niệm cơ bản về html...15
1. HTML là gì?...15
2. Thẻ HTML...15
3. Cần gì để tạo một trang web...15
II. Các thẻ định cấu trúc tài liệu...15
1. Thẻ html...15 2. Thẻ head...16 3. Thẻ title...16 4. Thẻ body...16 III. Các thẻ định dạng khối...17 1. Thẻ định dạng khối văn bản <p>...17 2. Các thẻ định dạng đề mục h1/h2/h3/h4/h5/h6...17 3. Thẻ xuống dòng <br>...18 4. Thẻ pre và thẻ <div>...18 IV. Các thẻ định dạng danh sách...18 V. Các thẻ định dạng ký tự...19 1. Các thẻ định dạng in ký tự...19
2. Căn lề văn bản trong trang Web...20
3. Các ký tự đặc biệt...20
4. Sử dụng màu sắc trong thiết kế các trang Web...20
5. Chọn kiểu chữ cho văn bản...22
8. Kết nối mailto...24
9. Vẽ một đường thẳng nằm ngang...24
VI. Các thẻ chèn âm thanh, hình ảnh ...24
1. Giới thiệu...24
2. Đưa âm thanh vào một tài liệu HTML...26
3. Chèn một hình ảnh, một đoạn video vào tài liệu HTML...26
VII. Các thẻ định dạng bảng biểu...27
VIII. FORM...28
1. Form...28
2. Hộp nhập văn bản 1 dòng (Oneline Textbox)...29
3. Radio Button...29
4. Checkbox...30
5. Nút lệnh (Button)...30
6. Combo Box (Drop-down menu)...30
7. Listbox...31
8. Hộp nhập văn bản nhiều dòng (TextArea)...31
IX. Một số thẻ đặc biệt...33 1. Thẻ <meta>...33 2. Thẻ <marquee>...35 3. Thẻ <style>...36 4. Thẻ <link>...36 5. Thẻ <script>...36 Chương 3: Thiết kế CSS...38 I.Giới thiệu về CSS...38 II.Cú pháp ...39 1. Định dạng thuộc tính thẻ html...39 2. Định dạng một kiểu mới...40 3. Định dạng ngay trong thẻ html...41
III.Sử dụng css trong tài liệu HTML...41
1. CSS được khai báo trong một tập tin riêng...41
2. Định dạng ngay trên tài liệu html...42
IV.Một số thuộc tính thường dùng...42
1. Định kiểu nền...42 a. Màu nền...42 b. Ảnh nền...42 2. Định kiểu chữ...44 a. Màu chữ...44 b. Canh lề:...44 c. Trang trí chữ...45
d. Chuyển đổi chữ hoa/thường...45
e. Thuộc tính letter-spacing: ...45
3. Định kiểu font...45
a. Tên font (font-family)...45
b. Kiểu font (font style)...47
c. Cỡ font (font size)...47
d. Thuộc tính font-weight: ...48
4. CSS Link...49
5. Định kiểu danh sách...50
a. Border:...51 b. Width:...53 c. Height:...53 d. Text-align: ...54 e. Vertical-align: ...54 f. Padding:...55 g. Background-color:...55 h. Color: ...55
7. Thuộc tính Id và class của thẻ...56
a. Thuộc tính Id...56 b. Thuộc tính Class...57 8. Mô hình hộp...59 a. Thuộc tính margin: ...59 b. Thuộc tính padding...60 c. Border...61
d. Thuộc tính Width và Height...62
e. Thuộc tính float và clear...62
Chương 4: Giới thiệu ngôn ngữ kịch bản Javascript...65
I.Giới thiệu về Javascript...65
II.Ngôn ngữ javascript...65
1.Chèn mã lệnh javascript vào trong tài liệu HTML...65
a.Chèn mã lệnh trên vùng <body>...65
b.Chèn mã lệnh trên vùng <head>...65
c.Chèn mã lệnh trực tiếp vào trong các thẻ HTML...65
d.Chèn mã lệnh bằng một tập tin riêng trên vùng <head>...66
2.Lời chú thích...66
3.Biến và cách xuất thông tin lên trình duyệt...66
a.Biến và cách khai báo biến...66
b.Xuất thông tin lên trình duyệt web...67
4.Các phép toán...67
5.Câu lệnh rẽ nhánh If...Else...69
6.Câu lệnh lựa chọn Switch...71
7.Định nghĩa hàm ...72
8.Hộp thông báo...72
9.Câu lệnh lặp For...74
10.Câu lệnh lặp While...75
11.Câu lệnh lặp For...In...76
12.Sự kiện trong Javascript...77
a.Sự kiện onLoad và onUnload...77
13.Câu lệnh Try...Catch...78
14.Câu lệnh Throw...79
15.Ký tự đặc biệt Text...80
III.Đối tượng trong javascrip...80
1.Đối tượng String...80
2.Đối tượng Date ...81
3.Đối tượng Array...81
4.Đối tượng Math...82
Chương 5: Ngôn ngữ PHP...84
1.Cú pháp PHP...84
2.Xuất giá trị ra trình duyệt...84
3.Lời chú thích...85
4.Biến trong PHP...85
a. Khai báo biến...85
b. Gán giá trị cho biến...86
c. Phạm vi hoạt động của biến...87
5.Hằng...88
a. Khái báo hằng...88
b. Sử dụng hằng...89
6.Kiểu dữ liệu...89
a. Kiểu dữ liệu...89
b. Chuyển đổi kiểu dữ liệu...91
7.Các toán tử...91
a. Toán tử toán học...91
b. Toán tử nối chuổi...91
c. Toán tử gán kết hợp...91
d. Toán tử so sánh...92
e. Toán tử logic...92
f. Toán tử @...92
g. Tham chiếu &...93
8.Các hàm kiểm tra giá trị...93
a. Kiểm tra tồn tại isset()...93
b. Kiểm tra giá trị rỗng empty()...94
c. Kiểm tra giá trị số is_numeric()...95
d. Kiểm tra kiểu giá trị của tên biến...95
e. Xác định kiểu dữ liệu biến...97
II.Câu lệnh điều khiển...97
1.Câu lệnh rẽ nhánh If...Else...97
2.Câu lệnh lựa chọn switch...99
3.Câu lệnh lặp...99
a. Cấu trúc for/foreach...99
b. Cấu trúc while...100
c. Cấu trúc do … while...101
4.Sử dụng break và continue trong cấu trúc lặp...101
a. Lệnh break...101 b. Lệnh continue...101 5.Kiểu mảng...102 a. Khái niệm mảng...102 b. Khai báo mảng và sử dụng mảng...102 c. Truy xuất phần tử mảng...103 d. Các thao tác trên mảng...103 e. Một số hàm...104 III.Xây dựng hàm trong PHP...107 1.Hàm do người dùng định nghĩa...107 a. Khai báo hàm...107 b. Sử dụng hàm...108
2.Hàm trong thư viện hàm...108
b. Kiểu dữ liệu số...113
c. Kiểu dữ liệu ngày, giờ...115
IV.Biểu mẫu form...117
1.Đặc điểm form...117
2.Biểu mẫu sử dụng phương thức $_POST...118
3.Biểu mẫu sử dụng phương thức $_GET...119
Chương 6: Hướng đối tượng trong PHP...120
I.Khái niệm...120
II.Tạo lớp...120
III.Sử dụng lớp...121
IV.Kế thừa...123
Chương 7: Tạo web động...124
I.Sử dụng tập tin dùng chung...124
1. REQUIRE...124
2. INCLUDE...126
II.Mở tập tin và thư mục...127
1. Tập tin...127
a. Chế độ mở tập tin...127
b. Mở tập tin...128
c. Đọc tập tin...128
d. Định dạng tập tin...130
e. Ghi nội dung tập tin...130
f. Đóng tập tin...130
g. Kiểm tra sự tồn tại của tập tin...130
h. Kiểm tra kích thước file...131
k. Xóa tập tin...131
2. Thư mục...132
a. Tạo thư mục...132
b. Kiểm tra thư mục...132
c. Mở thư mục...132
d. Đóng thư mục...133
e. Duyệt thư mục...133
III.Upload tập tin lên server...133
1. Giới thiệu...133
2. Các bước upload file...133
IV.PHP Cookies...135
1. Khái niệm...135
2. Khai báo cookie...135
3. Sử dụng cookie...136 4. Hủy cookie...136 V.PHP Sessions...136 1. Khái niệm...136 2. Cách thức hoạt động...137 3. Khởi động Session...137 4. Đặt ký Session...137 5. Sử dụng Session...137
6. Hủy biến Session...137
a. Hủy toàn bộ các biến session...137
VI.Gửi E-mail trong PHP...138
...138
Ví dụ: Lấy thông tin từ Form ...138
Chương 8: CƠ SỞ DỮ LIỆU MYSQL...139
I.Tổng quan...139
1. Giới thiệu CSDL ...139
a. Khái niệm...139
b. Chức năng...139
c. Các loại CSDL...139
d. Các đối tượng chính của CSDL...140
e. Hệ quản trị CSDL...140
f. SQL (Structure Query Language)...141
2. CSDL MySQL...141
a. Giới thiệu...141
b. Đặc điểm...141
c. Các tập tin vật lý lưu trữ CSDL...141
d. Quy tắc đặt tên cho CSDL, bảng, chỉ mục, cột và định danh...141
e. Tạo CSDL...142 f. Xóa CSDL ...144 II.Bảng(Table)...145 1. Khái niệm...145 2. Thuộc tính...145 a. Tên bảng...145
b. Các thuộc tính của cột trong bảng...145
3. Thao tác với bảng...147
a. Tạo bảng...147
b. Thay đổi cấu trúc bảng...149
c. Sửa đổi kiểu dữ liệu của cột...149
e. Hủy cột trong bảng...150
f. Xóa bảng...150
III.Bảng ảo...150
1. Khái niệm...150
2. Tạo bảng ảo...150
3. Cập nhật nội dung bảng ảo...152
4. Xóa bảng ảo...152 IV.Toán tử...152 1. Khái niệm...152 2. Toán tử số học...152 3. Toán tử so sánh...153 4. Toán tử logic...153 V.Phát biểu SQL...153 1. Câu lệnh SELECT...153
a. Truy vấn đơn giản SELECT … FROM...153
b. Truy vấn có sắp xếp dữ liệu...154
c. Truy vấn có điều kiện WHERE...154
d. Nhóm dữ liệu GROUP BY...155
e. Điều kiện lọc nhóm HAVING...155
f. Giới hạn mẫu tin LIMIT...155
a. Truy vấn con trả về giá trị...156
b. Truy vấn con trả về danh sách các giá trị...156
c. Làm việc với các toán tử so sánh...156
d. Làm việc với toán tử truy vấn con...156
3. Câu lệnh thêm dữ liệu...156
a. Giá trị trực tiếp...157
b. Lấy từ nguồn dữ liệu...157
4. Câu lệnh cập nhật dữ liệu...157
a. Giá trị trực tiếp...157
b. Lấy dữ liệu từ các bảng khác...158
5. Câu lệnh xóa dữ liệu...158
a. Câu lệnh xóa dữ liệu đơn giản...158
b. Câu lệnh xóa dữ liệu có điều kiện được lấy từ bảng khác...158
6. Sử dụng mệnh đề UNION trong truy vấn...158
7. Truy vấn dữ liệu từ nhiều bảng...159
a. INNER JOIN...159
b. LEFT JOIN, RIGHT JOIN...159
c. Mệnh đề liên kết dữ liệu nhiều bảng...159
8. Sử dụng hàm trong SQL...160
a. Các hàm cấu trúc điều khiển...160
b. Các hàm chuyển đổi kiểu dữ liệu ...160