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



