IX. Một số thẻ đặc biệt
2. Hiển thị dữ liệu
a. Duyệt dữ liệu
Có nhiều cách để duyệt dữ liệu: 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.
Cách 1: Duyệt dữ liệu theo dạng mỗi mẫu tin là một dòng bằng hàm mysql_fetch_row().
Hàm này trả về một mảng (có chỉ 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.
Sau đó truy xuất bằng cách gọi từng phần tử của mảng $row[0], $row[1] ,$row[2],… Cú pháp:
+ data: là tham số bắt buộc. Xác định số con trỏ dữ liệu. Con trỏ dữ liệu là kết quả trả về của
hàm mysql_query().
Ví dụ: Duyệt dữ liệu trong bảng sinhvien sử dụng hàm mysql_fetch_row()
<?php
$conn = mysql_connect("localhost","root",""); if (!$conn)
{
die('Could not connect: ' . mysql_error()); }
mysql_select_db("khoacntt", $conn);
$result = mysql_query("SELECT * FROM sinhvien"); for($i=1;$i<=mysql_num_rows($result);$i++)
{
print_r(mysql_fetch_row($result));
echo "</br>"; }
mysql_close($conn);
?>
Cách 2: Duyệt theo dạng mỗi mẫu tin là một mảng bằng hàm mysql_fetch_array()
Hàm này trả về một mảng (có chỉ số chuỗi) 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.
Sau đó truy xuất bằng cách gọi từng phần tử của mảng $row[“tên cột 1”], $row[“tên cột 2”], $row[“tên cột 3”],…
Cú pháp:
mysql_fetch_array(data)
+ data: là tham số bắt buộc. Xác định số con trỏ dữ liệu. Con trỏ dữ liệu là kết quả trả về của
hàm mysql_query().
Ví dụ: Duyệt dữ liệu trong bảng sinhvien sử dụng hàm mysql_fetch_array()
<?php
$conn = mysql_connect("localhost","root",""); if (!$conn)
{
die('Could not connect: ' . mysql_error()); }
$result = mysql_query("SELECT * FROM sinhvien"); while($row = mysql_fetch_array($result))
{
echo $row['ma_sv'] . " " . $row['ten_sv']; echo "<br />";
}
mysql_close($conn);
?>
Cách 3: Duyệt theo dạng mỗi mẫu tin là một đối tượng bằng hàm mysql_fetch_object()
Hàm này có kết quả trả về là một mẫu tin trong bộ các mẫu tin như một đối tượng.
Sau đó truy xuất bằng cách gọi từng thuộc tính của đối tượng $tên_đôi_tượng ->tên cột 1, $tên_đôi_tượng ->tên cột 2, $tên_đôi_tượng ->tên cột 3,…
Cú pháp:
mysql_fetch_object(data)
+ data: là tham số bắt buộc. Xác định số con trỏ dữ liệu. Con trỏ dữ liệu là kết quả trả về của
hàm mysql_query().
Ví dụ: Duyệt dữ liệu trong bảng sinhvien sử dụng hàm mysql_fetch_object()
<?php
$conn = mysql_connect("localhost","root",""); if (!$conn)
{
die('Could not connect: ' . mysql_error()); }
mysql_select_db("khoacntt", $conn);
$result = mysql_query("SELECT * FROM sinhvien"); for($i=1;$i<=mysql_num_rows($result);$i++)
{
$ob =mysql_fetch_object($result);
echo $ob->ma_sv.", ".$ob->ten_sv."</br>"; }
mysql_close($conn);
?>
b. Hiển thị dữ liệu không định dạng
Khi chúng ta chỉ có nhu cầu hiện thị dữ liệu mà không cần định dạng thì cách đơn giản nhất là in dữ liệu theo dạng bảng.
<p > <h1 align="center">THÔNG TIN SINH VIÊN</h1>
<table width="1000" border="1" cellspacing="2" cellpadding="2" align="center"> <tr> <td width='100px'>Mã SV</td> <td width='250px'>Tên SV</td> <td width='80px'>Ngay sinh</td> <td width='70px'>Gioi tinh</td> <td width='300px'>Quen quan</td> <td width='100px'>Nam hoc</td> <td width='100px'>Lop hoc</td> </tr> <?php
$conn = mysql_connect("localhost","root",""); if (!$conn)
{
die('Could not connect: ' . mysql_error()); }
mysql_select_db("khoacntt", $conn);
$result = mysql_query("SELECT * FROM sinhvien"); while($row = mysql_fetch_array($result))
{ echo "<tr>"; echo "<td width='100px'>".$row[0]."</td>"; echo "<td width='260px'>".$row[1]."</td>"; echo "<td width='80px'>".$row[2]."</td>"; echo "<td width='70px'>".$row[3]."</td>"; echo "<td width='300px'>".$row[4]."</td>"; echo "<td width='100px'>".$row[5]."</td>"; echo "<td width='100px'>".$row[6]."</td>"; echo "</tr>"; } mysql_close($conn); ?> </table> </p>
c. Hiển thị dữ liệu có yêu cầu
Khi xây dựng một ứng dụng web nếu chúng ta hiển thị thông tin không có định dạng thì sẽ làm cho người xem cảm thấy nhàm chán và khó khăn trong quá trình đọc và tìm kiếm dữ liệu, chính vì vậy mà phát sinh các yêu cầu hiển thị dữ liệu khác nhau.
- Đị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ác cột, dòng và kích thước, màu sắc, kiểu chữ, … cho nội dung hiển thị.
Chú ý: Để thực hiện được các yêu cầu về định dạng, chúng ta cần phải xem xét và tính toán các nội dung cần hiển thị.
Ví dụ:
- Tạo các cột tùy biến
Đôi khi, nội dung của một số cột trong CSDL khi hiển thị sẽ gây cho người dùng khó hiểu, hoặc chúng ta phải có dòng giải thích cho những thông tin đó. Chính vì vậy mà 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.
Ví dụ:
- 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. 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.
Ví dụ:
- Liên kết trang có chuỗi tham số.
* Chuỗi URL có cấu trúc định dạng như sau: http://<host>[:<port>][path][?string_parameter] Trong đó:
string_parameter có Cú pháp như sau:
[?parameter_1 = value_1 [¶meter_2 = value_2[&…]]]
Chú ý: Trong trường hợp có nhiều tham số, cặp [parameter_1 = value_1] phân cánh nhau bằng dấu &
Ví dụ:
Để nhận giá trị truyền qua tham số này ta dùng biến $_REQUEST[“parameter”]
Ví dụ:
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