Phân biệt mysql_fetch_assoc,mysql_fetch_array,.. 2007-08-15 01:10:40

các lệnh mysql_fetch_assoc,mysql_fetch_array,mysql_fetch_object  đều dùng để fetch dữ liệu từ câu query, tuy nhiên dữ liệu trả về sẽ có dạng khác nhau ứng với mỗi câu lệnh.
Ví dụ:
$sql = mysql_query("SELECT * FROM table WHERE id=id");

+ mysql_fetch_assoc():
$rs = mysql_fetch_assoc($sql);
Dữ liệu trả về sẽ có dạng:
Array(
'tên_field1'=>giá trị 1,
'tên_field2'=>giá trị 2,
'tên_field3'=>giá trị 3,
);

Và 1 mảng như vậy gọi là associative array
Hiển thị dữ liệu:
echo $rs['tên_field1'],$rs['tên_field2']


+ mysql_fetch_row():
$rs = mysql_fetch_row($sql);
Dữ liệu trả về sẽ có dạng:
Array(
0=>giá trị 1,
1=>giá trị 2,
2=>giá trị 3,
);

Và 1 mảng như vậy gọi là enumerated array
Hiển thị dữ liệu:
echo $rs[0],$rs[1]


+ mysql_fetch_array():
$rs = mysql_fetch_array($sql,mode_fetch);
trong đó mode_fetch có các giá trị:
+ MYSQL_ASSOC: trả về associative array(giống mysql_fetch_assoc())
+ MYSQL_NUM: trả về enumerated array(giống mysql_fetch_row())
+MYSQL_BOTH : (mặc định)
Dữ liệu trả về sẽ có dạng:
Array(
'tên_field1'=>giá trị 1,
0=>giá trị 1,
'tên_field2'=>giá trị 2,
1=>giá trị 2,
'tên_field3'=>giá trị 3,
2=>giá trị 3,
);

Hiển thị dữ liệu:
echo $rs['tên_field1'],$rs['tên_field2']; //hoặc
echo $rs[0],$rs[1]; // 0,1 là thự tự của các field trong table


+ mysql_fetch_object():
$rs = mysql_fetch_object($sql);
Dữ liệu trả về sẽ có dạng:
Object (
'tên_field1'=>giá trị 1,
'tên_field2'=>giá trị 2,
'tên_field3'=>giá trị 3,
);

Hiển thị dữ liệu:
echo $rs->tên_fiel1,$rs->tên_fiel2,..

Tra loi 5 comment(s) TG 2007-08-15 01:10:40

gaulucky92 2008-02-22 09:52:22

Khó hiểu ghê T_T
Vậy giữa những kiểu fetch như vậy xài cái nào là good nhất?

Tra loi

leothanh 2008-03-30 09:45:43

Thanks bác nhé bài viết rất dễ hiểu.

Tra loi

c_n 2008-03-31 03:34:08

@gaulucky92: Xài cái nào tốt nhất thì tùy trường hợp bồ cần lấy dữ liệu thế nào.
Vd với trường hợp chỉ cần lấy 1 mẫu tin xác định thì dùng Object hoặc assoc thay vì dùng array.

Khi làm việc với khối lượng dữ liệu lớn thì càng phải chú ý dùng cái nào cho phù hợp ko thì tèo mất mysql :D

Tra loi

GnuhNguyen 2009-04-06 02:04:50

Tuyệt, giờ thì em đã hiểu, kaka cám ơn TG, thích cái Object ^^

Tra loi

gaulucky92 :d 2009-10-27 04:03:11

@c_n: tại sao "Vd với trường hợp chỉ cần lấy 1 mẫu tin xác định thì dùng Object hoặc assoc thay vì dùng array. " Thank vì U đã trả lời

Tra loi

Y kien