• Hiển thị dữ liệu− Duyệt dữ liệu theo dạng mỗi mẩu tin là một dòng mysql_fetch_row • Cú pháp: mysql_fetch_rowdata ¾ data: là tham số bắt buộc.. • Hiển thị dữ liệu− Hiển thị dữ liệu khô
Trang 1HỌC PHẦN 5
Trang 2KẾT HỢP PHP và MYSQL
Trang 3• Kết nối CSDL
• Làm việc với CSDL MySQL
• PHP kết hợp với các CSDL khác
Trang 5• password: tham số tùy chọn, xác định mật khẩu của người dùng Giá trị mặc định là “”
Trang 6echo "Không thể kết nối CSDL";
exit;
}
Trang 7thành công, ngược lại kết quả sẽ bằng FALSE
Trang 9• Truy vấn dữ liệu
mysql_query(query,connection);
• query: tham số bắt buộc, là câu lệnh truy vấn được gửi đi
• connection: tham số tùy chọn, xác định kết nối Nếu không xác định thì kết nối cuối cùng được mở bởi hàm mysql_connect() hoặc hàm mysql_pconnect() sẽ được sử dụng
− mysql_query() sẽ trả về kết quả của câu lệnh truy vấn
nếu thực hiện thành công, ngược lại sẽ trả về FALSE
Trang 11− Kết quả trả về là TRUE nếu đóng kết nối thành công,
ngược lại sẽ trả về FALSE nếu thất bại
Trang 12• Đóng kết nối
− Ví dụ: đóng kết nối đã mở
mysql_close($db);
Trang 13• Thông báo lỗi
− Trong quá trình làm việc với CSDL lỗi có thể phát sinh
→ cần thông báo những lỗi phát sinh này bằng cách sử
dụng hàm mysql_error().
mysql_error(connection);
− Kết quả trả về là câu thông báo lỗi nếu có lỗi phát sinh,
ngược lại kết quả trả về sẽ là một chuỗi rỗng “”
− Kết hợp hàm mysql_error() với hàm die() hoặc hàm
Trang 14• Thông báo lỗi
− Ví dụ: thông báo lỗi nếu không thể tạo kết nối
Trang 15• Kết nối CSDL
• Làm việc với CSDL MySQL
• PHP kết hợp với các CSDL khác
Trang 16• Đếm số lượng mẩu tin
• Hiển thị dữ liệu
• Lưu thông tin mới vào CSDL
• Cập nhật dữ liệu
• Xóa dữ liệu
Trang 17• Đếm số lượng mẩu tin
mysql_num_rows(data);
• data: là tham số bắt buộc Xác định con trỏ dữ liệu Con trỏ
dữ liệu là kết quả trả về của hàm mysql_query()
− Hàm này có kết quả trả về là số lượng mẩu tin nếu
thành công, ngược lại kết quả trả về sẽ là FALSE nếu thất bại.
Trang 18• Đếm số lượng mẩu tin
− Ví dụ: đếm số lượng mẩu tin có trong bảng hang_sua
$sql= "SELECT * FROM hang_sua";
$result = mysql_query($sql);
echo mysql_num_rows($result); → 7
Trang 19− Duyệt dữ liệu: có các cách sau
• Duyệt dữ liệu theo dạng mỗi mẩu tin là một dòng
• Duyệt theo dạng mỗi mẫu tin là một mảng
• Duyệt theo dạng mỗi mẩu tin là một đối tượng
Trang 20• Hiển thị dữ liệu
− Duyệt dữ liệu theo dạng mỗi mẩu tin là một dòng
mysql_fetch_row()
• Cú pháp: mysql_fetch_row(data)
¾ data: là tham số bắt buộc Xác định con trỏ dữ liệu Con trỏ
dữ liệu là kết quả trả về của hàm mysql_query()
• Kết quả trả về một mảng (có chỉ số số) chứa giá trị của một dòng dữ liệu với mỗi phần tử là nội dung của một cột → truy cập bằng cách gọi từng phần tử của mảng $row[0], $row[1],
$row[2],…
Trang 21− Duyệt dữ liệu theo dạng mỗi mẩu tin là một dòng
[3] => A21 Nguyễn Oanh quận Gò Vấp [4] => 9874125
[5] => ktphuong@hcmuns.edu.vn )
Trang 23− Duyệt dữ liệu theo dạng mỗi mẩu tin là một mảng
Trang 24Array ( [Ma_khach_hang] => kh001 [Ten_khach_hang] => Khuất Thùy Phương [Phai] => 1
[Dia_chi] => A21 Nguyễn Oanh quận Gò Vấp
Trang 25− Duyệt dữ liệu theo dạng mỗi mẩu tin là một mảng
Trang 27stdClass Object ( [Ma_khach_hang] => kh001 [Ten_khach_hang] => Khuất Thùy Phương [Phai] => 1
[Dia_chi] => A21 Nguyễn Oanh quận Gò Vấp [Dien_thoai] => 9874125
Trang 29− Hiển thị dữ liệu không định dạng
− Hiển thị dữ liệu có yêu cầu
Trang 30• Hiển thị dữ liệu
− Hiển thị dữ liệu không định dạng: cách đơn giản nhất là
hiển thị dữ liệu theo dạng bảng hoặc dạng text.
− Ví dụ: hiển thị thông tin bảng khách hàng
Trang 31− Hiển thị dữ liệu có yêu cầu - Định dạng hiển thị dữ liệu
• Yêu cầu đơn giản nhất của một trang Web là dữ liệu hiển thịphải được định dạng giúp cho người dùng dễ dàng đọc thông tin
• Các định dạng thông thường là định dạng cột, dòng, kích thước, màu sắc, kiểu chữ,… cho nội dung hiển thị
• Để thực hiện được các yêu cầu về định dạng → cần phải xem xét và tính toán cho các nội dung cần hiển thị
Trang 32• Hiển thị dữ liệu
− Hiển thị dữ liệu có yêu cầu - Định dạng hiển thị dữ liệu
• Ví dụ: hiển thị thông tin khách hàng với định dạng như sau:
¾ Dòng tiêu đề của bảng sẽ được canh giữa, chữ in đậm, màu sắc phân biệt so với các dòng khác.
¾ Các dòng thông tin của khách hàng: dòng chẵn và dòng lẻ
có màu nền khác nhau, cột giới tính được canh giữa
Trang 33− Hiển thị dữ liệu có yêu cầu - Định dạng hiển thị dữ liệu
Dòng tiêu đề
Trang 34• Hiển thị dữ liệu
− Hiển thị dữ liệu có yêu cầu - Tạo các cột tùy biến
• Nhu cầu hiển thị dữ liệu một cách rõ ràng, chi tiết, dễ hiểu trởthành một yêu cầu tất yếu khi thiết kế trang Web
• Một trong những cách hiển thị dữ liệu đáp ứng nhu cầu đó làtạo các cột tùy biến
Trang 35− Hiển thị dữ liệu có yêu cầu - Tạo các cột tùy biến
• Ví dụ: trong CSDL thường dùng kiểu dữ liệu boolean cho cột giới tính → cột này sẽ có một trong hai giá trị là 0 hoặc 1 vàtùy theo quy ước để xác định 0 hoặc 1 thuộc giới tính gì Nếu cột giới tính hiển thị 0, 1 và sau đó lại có dòng chú giải thì sẽkhông thuận tiện → dùng hình ảnh hoặc checkbox,… để hiển thị giới tính Cách hiển thị này vừa đẹp mắt, vừa dễ hiểu
Trang 36• Hiển thị dữ liệu
− Hiển thị dữ liệu có yêu cầu - Tạo các cột tùy biến
• Ví dụ:
Trang 37− Hiển thị dữ liệu có yêu cầu - Phân trang
• Đối với những bảng có số lượng mẩu tin lớn khi hiển thị
dữ liệu sẽ làm cho người dùng cảm thấy khó xem→ thực hiện việc phân trang
• Phân trang dữ liệu giúp cho việc xem và tìm kiếm thông tin
dễ dàng, nhanh chóng và thuận tiện.
• Sử dụng class pager được cung cấp để thực hiện việc phân trang
Trang 38• Hiển thị dữ liệu
− Hiển thị dữ liệu có yêu cầu - Phân trang
Trang 39− Hiển thị dữ liệu có yêu cầu - Liên kết trang có chuỗi
Trang 40Trang chi tiết sữa Trang danh sách sữa
Trang 41− Hiển thị dữ liệu có yêu cầu - Liên kết trang có chuỗi
Trang 42• Chuyển đổi giá trị thời gian
Trang 43• Lưu thông tin mới vào CSDL
− 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, xoá, cập nhật) tới một kết nối MySQL.
Trang 44• Lưu thông tin mới vào CSDL
− Ví dụ: Thêm mới một hãng sữa với giá trị cụ thể vào
Trang 49• Kết nối CSDL
• Làm việc với CSDL MySQL
• PHP kết hợp với các CSDL khác
Trang 50• PHP có thể thực thi được trên cả hai môi trường
là Windows và Linux do đó PHP có thể kết nối
nhiều loại CSDL (MS Access, SQL Server, …)
trên hai môi trường này
− Dùng ODBC để kết nối tới nguồn dữ liệu.
− Với một kết nối ODBC, có thể kết nối đến nhiều CSDL khác nhau
Trang 51• PHP và MS Access
• PHP và SQL Server
Trang 52• PHP và MS Access
• 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 (ODBC)
Trang 53• PHP và MS Access
• Bước 3: Trong cửa sổODBC Data Source Administrator chọn tab System DNS
• Bước 4: Nhấn nút Add trên Tab System DNS
Trang 54• PHP và MS Access
• Bước 5: Trong cửa sổ Create New Data Source chọn Microsoft Access Driver => nhấn nút Finish
Trang 55• PHP và MS Access
• Bước 6: Trong cửa sổ ODBC Microsoft Access Setup, nhấn nút Select để lựa chọn tập tin Access cần liên kết => nhấn nút OK
Trang 56• PHP và MS Access
• Bước 7: Đặt tên cho Data Source (DNS) trong mục Data Source Name => nhấn nút OK
Trang 57• PHP và MS Access
• Bước 8: Trong cửa sổ ODBC Data Source Administrator, nhấn nút OK để hoàn thành việc tạo kết nối
Trang 58• PHP và MS Access
− Kết nối tới ODBC
• odbc_connect()
nghĩa trong ODBC
$conn = odbc_connect(tên_DSN, tên_người_dùng, mật_khẩu);
Trang 60• PHP và MS Access
− Kết nối tới ODBC
• Ví dụ: tạo một kết nối tới DNS có tên là ‘Northwind’, không có tên người dùng và mật khẩu, sau đó tạo một câu lệnh truy vấn
và thực thi
$conn=odbc_connect('Northwind','','');
$sql="SELECT * FROM customers";
$rs=odbc_exec($conn,$sql);
Trang 61• PHP và MS Access
− Nhận các mẩu tin kết quả - odbc_fetch_row()
• Dùng để lấy các mẩu tin kết quả
• Cú pháp:
odbc_fetch_row($rs)
¾ $rs là biến đã có từ hàm odbc_exec() trong quá trình kết nối
• Kết quả trả về là TRUE nếu nó có các mẩu tin kết quả, ngược lại kết quả trả về là FALSE
Trang 62• PHP và MS Access
− Đọc giá trị các trường của một mẩu tin - odbc_result()
• Dùng để đọc các trường của một mẩu tin
• Cú pháp:
odbc_result($rs,tên field hoặc số thứ tự cột của field)
¾ $rs là biến đã có từ hàm odbc_exec() trong quá trình kết nối.
Trang 63• PHP và MS Access
− Đọc giá trị các trường của một mẩu tin - odbc_result()
• Ví dụ: đọc tên công ty trong bảng khách hàng ở trên
¾ Cách 1: sử dụng số thứ tự cột – với cột tên công ty có thứ tự
Trang 64• PHP và MS Access
− Đọc giá trị các trường của một mẩu tin - odbc_result()
• Ví dụ: đọc tên công ty trong bảng khách hàng
¾ Cách 2: sử dụng tên cột – với cột tên công ty có tên cột là
Trang 65• PHP và MS Access
• Dùng để đóng kết nối ODBC đang mở
• Cú pháp:
odbc_close($conn);
Trang 66• PHP và 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 (ODBC)
Trang 67• PHP và SQL Server
• Bước 3: Trong cửa sổODBC Data Source Administrator chọn tab System DNS
• Bước 4: Nhấn nút Add trên Tab System DNS
Trang 68• PHP và SQL Server
• Bước 5: Chọn SQL Server => nhấn nút Finish
Trang 69• PHP và SQL Server
• Bước 6: Đặt tên cho Data Source (DNS) 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
Trang 70• PHP và SQL Server
• Bước 7: 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
Trang 71• PHP và SQL Server
• Bước 8: 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
Trang 72• PHP và SQL Server
• Bước 9: 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
Trang 73• PHP và SQL Server
• Bước 10: Hoàn thành việc kết nối CSDL => nhấn nút OK