Bài giảng Thiết kế Web - Chương VII: PHP cơ bản
Giới thiệu PHP
Biến trong PHP
Kiểu dữ liệu
Các cấu trúc ñiều khiển
Hàm
Phạm vi biến
Lớp ñối tượng trong PHP
PHP với CSDL
trúc ñiều khiển Hàm Phạm vi biến Lớp ñối tượng trong PHP PHP với CSDL Thiết kế web Khoa CNTT-LHU 2 Giới thiệu PHP PHP=PHP: Hypertext Preprocessor. Tên gốc là Personal Home Page Là ngôn ngữ ñể viết các trang web ñộng server side như ASP, JSP Bộ biên dịch PHP là phần mềm mã nguồn mở, có thể chạy cùng với các web server Apache, IIS, Thường kết hợp với hệ quản trị CSDL MySQL Tập tin PHP có phần mở rộng là .php Cú pháp ngôn ngữ giống ngôn ngữ C & Perl 2Thiết kế web Khoa CNTT-LHU 3 Các ưu ñiểm Miễn phí ða môi trường (Multi-Platform) – Web Servers: Apache, Microsoft IIS, Netscape Enterprise Server – Hệ ñiều hành: UNIX (HP-UX, OpenBSD, Solaris, Linux), Mac OSX, Windows NT/98/2000/XP/2003/vista – Hệ QTCSDL: dBase, DB2, Informix, InterBase, MS-SQL, MySQL, ODBC, Oracle, Nhiều tài nguyên do ñược ứng dụng rộng rãi Thiết kế web Khoa CNTT-LHU 4 Cần software gì ñể chạy PHP Download PHP – Download PHP for free here: . Download MySQL Database – Download MySQL for free here: . Download Apache Server – Download Apache for free here: Hoặc Download WAMP,LAMP 3Thiết kế web Khoa CNTT-LHU 5 Nhúng PHP vào HTML Có thể nhúng mã PHP vào mọi vị trí trong trang HTML. ðoạn mã PHP ñược ñặt trong các thẻ sau: Một cấu trúc lệnh thông thường của PHP có thể ñược tách làm nhiều phần, mỗi phần ñặt giữa Kết quả do ñoạn lệnh PHP ñưa ra ñược ñưa vào vị trí mà ñoạn lệnh PHP ñang chiếm chỗ. Thiết kế web Khoa CNTT-LHU 6 Các ñặc ñiểm Có khả năng hướng ñối tượng Thông dịch Phân biệt chữ hoa/chữ thường Mỗi lệnh kết thúc bởi chấm phảy (;) Không phân biệt khoảng trắng, Tab, xuống dòng trong câu lệnh Ghi chú: dùng //, #, /* */ <?php print “Hello” ; print “ World!”; ?> 4Thiết kế web Khoa CNTT-LHU 7 Biến trong PHP Phân biệt chữ hoa, chữ thường Bắt ñầu bằng dấu ñô la ($), tiếp ngay sau $ là tên biến. Tên biến bao gồm chữ cái, chữ số, “_”, “$” và phải bắt ñầu bằng chữ cái hoặc dấu gạch nối. Ví dụ: $a, $b, Biến không cần khai báo (ñược tự ñộng khai báo vào lần gán giá trị ñầu tiên). Việc sử dụng biến chưa khởi tạo sẽ gây lỗi. Thiết kế web Khoa CNTT-LHU 8 Biến trong PHP Biến ñộng: Cho phép sử dụng giá trị của biến làm tên biến khác. – VD: $a = “hello”; $$a = “world”; //$hello = “world” Hng s - Constants – Ví dụ: define(“MAX_VALUE”, 10); echo MAX_VALUE; 5Thiết kế web Khoa CNTT-LHU 9 Kiểu dữ liệu Boolean(bool) integer (int), double (float, real) string array object 1 Bin trong PHP có th lu bt kỳ kiu d li!u nào. Thiết kế web Khoa CNTT-LHU 10 Kiểu số Số nguyên từ -231 ñến 231-1 – Hệ thập phân: VD: $a = 16; – Hệ 16 (hexa): VD: $a=0x10; – Hệ 8 (bát phân): VD: 020; Số thực (thập phân): từ 1.7E-308 ñến 1.7E+308 – Biểu diễn: $a = 0.017 – Dạng khoa học: $a = 17.0E-03 Một số hàm xử lý số 6Thiết kế web Khoa CNTT-LHU 11 Kiểu chuỗi - string Thiết kế web Khoa CNTT-LHU 12 Kiểu chuỗi – string (tt) Ký tự thoát: \ – Sử dụng ñể viết các ký tự ñặc biệt trong chuỗi – VD: Cần có chuỗi: Người ta nói “PHP rất tốt” $a = “Người ta nói “PHP rất tốt””; //Sai $a = “Người ta nói \“PHP rất tốt\””; //ðúng – Một số ký tự phải sử dụng ký tự thoát: $, \, “ – Ngoài ra: • \n: Xuống dòng • \r: trở về ñầu dòng • \t: dấu tab • 7Thiết kế web Khoa CNTT-LHU 13 Kiểu chuỗi – string (tt) Kiểu tài liệu (heredoc): – Cho phép viết 1 chuỗi trên nhiều dòng. – Không cần sử dụng ký tự thoát: – Cách viết: $biến = <<<Ký_hiệu nội dung trên nhiều dòng Ký_hiệu; – Chú ý: Ký_hiệu phải ñược viết ở ký tự ñầu tiên của dòng – Ví dụ: $a = <<<EOD ðây là chuỗi nằm trên nhiều dòng sử dụng cú pháp kiểu tài liệu ‘heredoc’ EOD; Thiết kế web Khoa CNTT-LHU 14 Kiểu mảng – array Cho phép chứa nhiều giá trị dữ liệu ñược ñánh chỉ mục bằng số (Numbered array) hay chuỗi. ðể truy cập vào 1 phần tử, ñặt chỉ số trong [ ] Ví dụ: $a[0] = “Xin”; $a[1] = “Chào”; Có thể sử dụng chỉ số không liên tiếp Có thể thêm phần tử vào cuối mảng bằng cách bỏ chỉ số: $a[0] = “Xin”; $a[] = “Chào”; // $a[1] $a[] = “Bạn”; // $a[2] 8Thiết kế web Khoa CNTT-LHU 15 Kiểu mảng – array(tt) Chỉ số chuỗi (Associated array): $a[“ten”] = “Hồng”; $a[“mau”] = “ðỏ”; Mảng nhiều chiều – ðược coi là mảng của mảng – Ví dụ: $a[0][0] = “TT”; $a[0][1] = “Họ tên”; $a[1][0] = 1; $a[1][1] = “Nguyen Van A”; Thiết kế web Khoa CNTT-LHU 16 Kiểu mảng – array(tt) Khởi tạo mảng bằng hàm array() – Chỉ số mặc ñịnh: $a=array(“xin”, “chào”, “bạn”); /*tương ñương với $a[]=“xin”; $a[]=“chào”; $a[]=“bạn”;*/ – Chỉ số mặc ñịnh với chỉ số ñầu khác 0: $a=array(5=>“xin”, “chào”, “bạn”); /*tương ñương với $a[5]=“xin”; $a[]=“chào”; $a[]=“bạn”;*/ 9Thiết kế web Khoa CNTT-LHU 17 Kiểu mảng – array(tt) Khởi tạo mảng bằng hàm array()(tiếp) – Chỉ số chuỗi: $a=array(“ten”=>”Hồng”, “mau”=>”ðỏ”); /*Tương ñương với: $a[“ten”] = “Hồng”; $a[“mau”] = “ðỏ”;*/ – Mảng nhiều chiều: $a = array( array(“TT”, “Họ tên”), array(1,”Nguyễn Văn A”) ); Thiết kế web Khoa CNTT-LHU 18 Kiểu mảng – array(tt) 10 Thiết kế web Khoa CNTT-LHU 19 Chuyển kiểu và kiểm tra kiểu Chuyển kiểu dữ liệu – Cách 1 (automatic) $var = "100" + 15; $var = "100" + 15.0; $var = 39 . " Steps"; – Cách 2: (datatype) $var – Cách 3: settype($var, “datatype”) Kiểm tra kiểu Thiết kế web Khoa CNTT-LHU 20 Toán tử Kiểu số: – Kết hợp: +, -, *, /, % – Tăng giảm: ++, -- VD: $a++; $a--; ++$a; --$a; Chuỗi: Toán tử chấm (.) Logic: AND (&&), OR (||), XOR, ! Gán: =, +=, -=, .= So sánh: ==, ===, !=, !==, , = 11 Thiết kế web Khoa CNTT-LHU 21 Các cấu trúc ñiều khiển ðiều kiện if ðiều khiển switch Vòng lặp for Vòng lặp while Vòng lặp do.. While Vòng lặp foreach Từ khóa break, continue Thiết kế web Khoa CNTT-LHU 22 foreach foreach (array as variable) { statements } Ví dụ: $meal = array('breakfast' => 'Walnut Bun', 'lunch' => 'Cashew Nuts and White Mushrooms', 'dinner' => 'Eggplant with Chili Sauce'); print "\n"; foreach ($meal as $key => $value) { print "$key$value\n"; } print ''; 12 Thiết kế web Khoa CNTT-LHU 23 Hàm Khái báo hàm ðể trả ra giá trị cho hàm ta sử dụng lệnh return biểu_thức; ðể thoát khỏi hàm: – Sử dụng return – exit; function tên_hàm(ts1, ts2,, tsn) { //các lệnh trong thân hàm } Thiết kế web Khoa CNTT-LHU 24 Phạm vi biến Phạm vi biến là phạm vi ở ñó biến xác ñịnh. Trong PHP, biến có 3 phạm vi: – Local variables: biến cục bộ: • Khởi tạo trong hàm • có tác dụng từ khi khởi tạo ñến hết hàm. – Global variables: Biến toàn cục: • Khởi tạo ở ngoài hàm • Có tác dụng từ khi khởi tạo ñến hết file trừ ở trong hàm. • ðể ñưa 1 biến toàn cục vào trong hàm, sử dụng khai báo global $biến1, $biến2,; hoặc mảng $_GLOBAL – Super Global Variables: Siêu toàn cục: Một số biến có sẵn của PHP: $_SERVER, $_GLOBAL... 13 Thiết kế web Khoa CNTT-LHU 25 VD Phạm vi biến <?php function Ham1($var = 10) { global $temp; $temp = $var * 2; } $temp = 5; Ham1(); echo “Bien \$temp co gia tri la: $temp"; ?> Thiết kế web Khoa CNTT-LHU 26 Biến tham chiếu <?php function Ham1(& $var) { $var = $var +10; } $var = 5; Ham1($var); echo “ Bien\$var co gia tri la: $var"; ?> 14 Thiết kế web Khoa CNTT-LHU 27 Chèn file include(“ñịa_chỉ_file”); require(“ñịa_chỉ_file”); include_once(“ñịa_chỉ_file”); require_once(“ñịa_chỉ_file”); Thiết kế web Khoa CNTT-LHU 28 Lớp ñối tượng trong PHP ðịnh nghĩa lớp 15 Thiết kế web Khoa CNTT-LHU 29 Lớp ñối tượng trong PHP Thiết kế web Khoa CNTT-LHU 30 PHP với CSDL Các bước thao tác CSDL trong PHP 1. Kết nối với CSDL 2. Xây dựng câu truy vấn dữ liệu 3. Thực thi câu truy vấn 4. Xử lí kết quả trả về từ câu truy vấn SELECT 5. Ngắt kết nối với CSDL 16 Thiết kế web Khoa CNTT-LHU 31 Tạo Kết nối CSDL Kết nối với MySQL resource mysql_connect([string host], [string username], [string password]) Chọn CSDL int mysql_select_db (string database, [resource connection]) VD: <?php $connection = mysql_connect(“localhost",“root”,“root"); mysql_select_db(“Books", $connection); ?> Thiết kế web Khoa CNTT-LHU 32 Xây dựng câu truy vấn dữ liệu 17 Thiết kế web Khoa CNTT-LHU 33 Thực thi câu truy vấn resource mysql_query(string SQL_command, [resource connection]) VD: <?php $strSQL = “INSERT INTO Users (UserName, Password) VALUES (‘admin',‘123456')”; mysql_query($strSQL); $strSQL = “SELECT * FROM Users“; $result = mysql_query($strSQL); ?> Thiết kế web Khoa CNTT-LHU 34 Xử lý kết quả trả về Hiển thị dữ liệu trả về – Sử dụng hàm $row = mysql_fetch_array($result) Số lượng FIELD $num = mysql_num_fields($result); Truy cập ñến từng FIELD echo $row[“UserName”]; Hoặc echo $row[0]; 18 Thiết kế web Khoa CNTT-LHU 35 Ngắt kết nối dữ liệu int mysql_close([resource connection]) Tự ñộng thực thi khi kết thúc mã lệnh Thiết kế web Khoa CNTT-LHU 36 Tổng hợp các bước thao tác CSDL MySQL 19 Thiết kế web Khoa CNTT-LHU 37 Một số vấn ñề - MySQL & Font Unicode <?php mysql_query(“set names ‘utf-8’”); ?> Thiết kế web Khoa CNTT-LHU 38 Các hàm xử lý lỗi int mysql_errno(resource connection) string mysql_error(resource connection) <?php function Showerror() { die("Error " . mysql_errno( ) . " : " . mysql_error( )); } if (!($connection = @ mysql_connect("localhost", “admin",“admin"))) die("Could not connect"); If (!(mysql_select_db(“Tên_CSDL", $connection))) showerror( ); ?> 20 Thiết kế web Khoa CNTT-LHU 39 Include File Thiết kế web Khoa CNTT-LHU 40 Thao tác với Microsoft SQL Server 21 Thiết kế web Khoa CNTT-LHU 41 Data Source Name (DSN) Tạo DSN: – Vào Control Panel Administrative Tools Data sources (ODBC) – Trong cửa sổ ODBC Data Source Administrator: User DSN Thiết kế web Khoa CNTT-LHU 42 Data Source Name (DSN) 22 Thiết kế web Khoa CNTT-LHU 43 Microsoft Access, MSSQL với ODBC qua Data Source Name (DSN) Thiết kế web Khoa CNTT-LHU 44
File đính kèm:
- Chuong07-PHP.pdf