Hướng dẫn mysql_fetch_array in php - mysql_fetch_array trong php

Hàm mysqli_fetch_array() sẽ tìm và trả về một dòng kết quả của một truy vấn MySQL nào đó dưới dạng một mảng kết hợp, mảng liên tục hoặc cả hai.

Hướng dẫn mysql_fetch_array in php - mysql_fetch_array trong php

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.freetuts.net, không được copy dưới mọi hình thức.

Cú pháp

Cú pháp: mysqli_fetch_array( $result, $result_type);mysqli_fetch_array( $result, $result_type);

Trong đó::

  • $result là kết quả của truy vấn, là kết quả trả về của các hàm: mysqli_query(), mysqli_store_result() hoặc mysqli_use_result().
  • $result_type là tham số không bắt buộc, quy định kiểu trả về mang một trong các giá trị sau:
    • MYSQLI_ASSOC.
    • MYSQLI_NUM.
    • MYSQLI_BOTH.

Kết quả trả về

Hàm sẽ trả về mảng kết hợp hoặc liên tục chứa thông tin của hàng kết quả.

Bài viết này được đăng tại [free tuts .net]

Ví dụ

Cách sử dụng hàm mysqli_fetch_array():

Code

$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno()){
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$sql="SELECT Lastname,Age FROM Persons ORDER BY Lastname";
$result=mysqli_query($con,$sql);

// Numeric array
$row=mysqli_fetch_array($result,MYSQLI_NUM);
printf ("%s (%s)\n",$row[0],$row[1]);

// Associative array
$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
printf ("%s (%s)\n",$row["Lastname"],$row["Age"]);

// Free result set
mysqli_free_result($result);

mysqli_close($con);

Tham khảo: w3schools.com

mysql_list_dbs([int link_identifier]);

Hàm trả lại một result_identifier là danh sách biến CSDL trên MySQL Server nếu thành công, lỗi trả về false.

  • mysql_query()
  • mysql_list_tables()
  • mysql_list_tables(string database [, int link_identifier]);
  • mysql_fetch_row()
  • mysql_fetch_array()
  • mysql_fetch_object()
  • mysql_fetch_assoc()
  • mysql_data_seek()
  • mysql_num_rows()
  • mysql_affected_rows()
  • mysql_result()
  • mysql_free_result()
  • mysql_tablename()
  • mysql_field_name()
  • mysql_list_dbs()
  • Các tham số result_identifier và row phải có, còn tham field là tùy chọn. Hàm sẽ trả lại các nội dung của dòng row và cột field từ tập kết quả được chỉ định bởi biến result_identifier. Nếu đối số field không được chỉ định rõ thì trường tiếp theo của bản ghi sẽ được trả về.
  • mysql_list_fields()
  • mysql_num_fields()
  • mysql_num_rows()
  • mysql_field_type()
  • mysql_field_len()
  • mysql_fetch_lengths()
  • mysql_errno()
  • mysql_fetch_field()

Hàm trả lại một result_identifier là danh sách biến CSDL trên MySQL Server nếu thành công, lỗi trả về false.

  • mysql_query()
  • mysql_list_tables()
  • mysql_list_tables(string database [, int link_identifier]);
  • mysql_fetch_row()
  • mysql_fetch_array()
  • mysql_fetch_object()
  • mysql_fetch_assoc()
  • mysql_data_seek()
  • mysql_num_rows()
  • mysql_affected_rows()
  • mysql_result()
  • mysql_free_result()
  • Hàm trả về danh sách tất cả câc bảng trong một CSDL MySQL, thành công trả về một result identifier, giá trị false nếu có lỗi.
  • mysql_field_name()
  • mysql_list_dbs()
  • mysql_list_tables()
  • mysql_list_fields()
  • mysql_num_fields()
  • mysql_num_rows()
  • mysql_field_type()
  • mysql_field_len()
  • mysql_fetch_lengths()
  • mysql_errno()
  • mysql_fetch_field()

Nội dung chính

  • mysql_query()
  • mysql_db_query()
  • mysql_insert_id()
  • mysql_fetch_row()
  • mysql_fetch_array()
  • mysql_fetch_object()
  • mysql_fetch_assoc()
  • mysql_data_seek()
  • mysql_num_rows()
  • mysql_affected_rows()
  • mysql_result()
  • mysql_free_result()
  • mysql_tablename()
  • mysql_field_name()
  • mysql_list_dbs()
  • mysql_list_tables()
  • mysql_list_fields()
  • mysql_num_fields()
  • mysql_num_rows()
  • mysql_field_type()
  • mysql_field_len()
  • mysql_fetch_lengths()
  • mysql_errno()
  • mysql_fetch_field()

mysql_query()

Hàm gửi câu lệnh SQL tới máy chủ MySQL.

Cú pháp:

int mysql_query(string query, [int link_identifier]);

Trong đó:

- query: Câu lệnh SQL cần gửi tới máy chủ MySQL.

- link_identifier: Mã số nhận dạng, nó phải được thực hiện trong hàm mysql_select_db() trước đó.

mysql_db_query()

Hàm gửi câu lệnh SQL tới máy chủ MySQL.

Cú pháp:

int mysql_query(string query, [int link_identifier]);

Trong đó:

- query: Câu lệnh SQL cần gửi tới máy chủ MySQL.

- link_identifier: Mã số nhận dạng, nó phải được thực hiện trong hàm mysql_select_db() trước đó.

mysql_db_query()

- database: Tên cơ sở dữ liệu câu lệnh SQL sẽ thực hiện trên đó.

- query: Câu lệnh SQL cần thực hiện.

- link_identifier: Mã số nhận dạng được cấp bởi hàm mysql_connect(). Hàm này chỉ rõ câu lệnh được thực hiện trên cơ sở dữ liệu nào nên trước đó không cần thực hiện hàm mysql_select_db();

mysql_fetch_row()

mysql_insert_id()

Cú pháp:

int mysql_query(string query, [int link_identifier]);

Trong đó:

- query: Câu lệnh SQL cần gửi tới máy chủ MySQL.

- link_identifier: Mã số nhận dạng, nó phải được thực hiện trong hàm mysql_select_db() trước đó.

mysql_db_query()

int mysql_db_query(string database, string query, int [link_identifier]);

- database: Tên cơ sở dữ liệu câu lệnh SQL sẽ thực hiện trên đó.

- query: Câu lệnh SQL cần thực hiện.

- link_identifier: Mã số nhận dạng được cấp bởi hàm mysql_connect(). Hàm này chỉ rõ câu lệnh được thực hiện trên cơ sở dữ liệu nào nên trước đó không cần thực hiện hàm mysql_select_db();

mysql_insert_id()

Hàm lấy giá trị được sinh ra từ câu truy vấn INSERT trước.

int mysql_insert_id(int [link_identifier]);

, trong đó link_identifier là mã số nhận dạng được cấp bởi hàm mysql_connect(). Hàm này trả về giá trị id được sinh ra trong cột AUTO_INCREMENT bởi câu truy vấn trước đó. Điều này chỉ có tác dụng trên link_identifier được chỉ ra trong hàm, nếu gọi hàm trên mà không chỉ định tham số link_identifier thì liên kết được mở cuối cùng sẽ được chỉ định. Hàm mysql_insert_id() trả về giá trị 0 nếu câu truy vấn trước đó không sinh ra một giá trị AUTO_INCREMENT. Nếu ta muốn giữ lại giá trị cho lần sau, thì phải gọi hàm này ngay sau câu truy vấn sinh ra giá trị.

mysql_fetch_array()

Hàm trả về một mảng là giá trị của một bảng ghi hiện tại với chỉ số là số thứ tự của các trường (chỉ số bắt đầu từ 0). Sau đó hàm sẽ trỏ tới bảng ghi tiếp theo cho tới khi gặp bảng ghi cuối cùng hàm trả về giá trị false. Để truy xuất tới các giá trị của cột ta viết: tên_mảng[số thứ tự].

Cú pháp:

int mysql_query(string query, [int link_identifier]);

Trong đó:

- query: Câu lệnh SQL cần gửi tới máy chủ MySQL.

- link_identifier: Mã số nhận dạng, nó phải được thực hiện trong hàm mysql_select_db() trước đó.

mysql_db_query()

int mysql_db_query(string database, string query, int [link_identifier]);

- database: Tên cơ sở dữ liệu câu lệnh SQL sẽ thực hiện trên đó.

- query: Câu lệnh SQL cần thực hiện.

- query: Câu lệnh SQL cần gửi tới máy chủ MySQL.

- link_identifier: Mã số nhận dạng, nó phải được thực hiện trong hàm mysql_select_db() trước đó.

mysql_db_query()

int mysql_db_query(string database, string query, int [link_identifier]);

- database: Tên cơ sở dữ liệu câu lệnh SQL sẽ thực hiện trên đó.

- query: Câu lệnh SQL cần thực hiện.

- link_identifier: Mã số nhận dạng được cấp bởi hàm mysql_connect(). Hàm này chỉ rõ câu lệnh được thực hiện trên cơ sở dữ liệu nào nên trước đó không cần thực hiện hàm mysql_select_db();

mysql_insert_id()

Hàm lấy giá trị được sinh ra từ câu truy vấn INSERT trước.

int mysql_insert_id(int [link_identifier]);

int mysql_insert_id(int [link_identifier]);

, trong đó link_identifier là mã số nhận dạng được cấp bởi hàm mysql_connect(). Hàm này trả về giá trị id được sinh ra trong cột AUTO_INCREMENT bởi câu truy vấn trước đó. Điều này chỉ có tác dụng trên link_identifier được chỉ ra trong hàm, nếu gọi hàm trên mà không chỉ định tham số link_identifier thì liên kết được mở cuối cùng sẽ được chỉ định. Hàm mysql_insert_id() trả về giá trị 0 nếu câu truy vấn trước đó không sinh ra một giá trị AUTO_INCREMENT. Nếu ta muốn giữ lại giá trị cho lần sau, thì phải gọi hàm này ngay sau câu truy vấn sinh ra giá trị.

, trong đó link_identifier là mã số nhận dạng được cấp bởi hàm mysql_connect(). Hàm này trả về giá trị id được sinh ra trong cột AUTO_INCREMENT bởi câu truy vấn trước đó. Điều này chỉ có tác dụng trên link_identifier được chỉ ra trong hàm, nếu gọi hàm trên mà không chỉ định tham số link_identifier thì liên kết được mở cuối cùng sẽ được chỉ định. Hàm mysql_insert_id() trả về giá trị 0 nếu câu truy vấn trước đó không sinh ra một giá trị AUTO_INCREMENT. Nếu ta muốn giữ lại giá trị cho lần sau, thì phải gọi hàm này ngay sau câu truy vấn sinh ra giá trị.

mysql_fetch_object()

Hàm trả về một mảng là giá trị của một bảng ghi hiện tại với chỉ số là số thứ tự của các trường (chỉ số bắt đầu từ 0). Sau đó hàm sẽ trỏ tới bảng ghi tiếp theo cho tới khi gặp bảng ghi cuối cùng hàm trả về giá trị false. Để truy xuất tới các giá trị của cột ta viết: tên_mảng[số thứ tự].

Cú pháp:

array mysql_fetch_row(int result_identifier);

Trong đó:

- query: Câu lệnh SQL cần gửi tới máy chủ MySQL.

- link_identifier: Mã số nhận dạng, nó phải được thực hiện trong hàm mysql_select_db() trước đó.

mysql_db_query()

int mysql_db_query(string database, string query, int [link_identifier]);

- database: Tên cơ sở dữ liệu câu lệnh SQL sẽ thực hiện trên đó.

- query: Câu lệnh SQL cần thực hiện.

- link_identifier: Mã số nhận dạng được cấp bởi hàm mysql_connect(). Hàm này chỉ rõ câu lệnh được thực hiện trên cơ sở dữ liệu nào nên trước đó không cần thực hiện hàm mysql_select_db();

mysql_insert_id()

}

?>

mysql_fetch_assoc()

Hàm lấy về một dòng kết quả như là một mảng liên kết.

Cú pháp:

array mysql_fetch_assoc(int result_identifier);

, trong đó result_identifier là mã số trả về của hàm mysql_query() hoặc mysql_db_query().

Hàm trả về một mảng tương ứng với một bản ghi được lấy về và trả lại FALSE nếu không có bản ghi nào. Hàm này tương đương với hàm array mysql_fetch_array() với tham số result_type là: MYSQL_ASSOC.

Ví dụ:

- link_identifier: Mã số nhận dạng, nó phải được thực hiện trong hàm mysql_select_db() trước đó.

$mysql = “select id, name from ds_thanhvien”;

$link = mysql_connect($host, $user, $password);

$result = mysql_db_query(“php”, $mysql);

while ($row = mysql_fetch_assoc($result)){

echo $row[“id”];

echo $row[“name”];

}

?>

mysql_data_seek()

Hàm lấy về một dòng kết quả như là một mảng liên kết.

Cú pháp:

array mysql_fetch_assoc(int result_identifier);

, trong đó result_identifier là mã số trả về của hàm mysql_query() hoặc mysql_db_query().

Hàm trả về một mảng tương ứng với một bản ghi được lấy về và trả lại FALSE nếu không có bản ghi nào. Hàm này tương đương với hàm array mysql_fetch_array() với tham số result_type là: MYSQL_ASSOC.

Ví dụ:

Ví dụ:

$mysql = “select id, name from ds_thanhvien”;

$link = mysql_connect($host, $user, $password);

$result = mysql_db_query(“php”, $mysql);

while ($row = mysql_fetch_assoc($result)){

echo $row[“id”];

echo $row[“name”];

Di chuyển con trỏ bên trong “tập kết quả” (có được sau khi câu truy vấn SELECT được thực hiện).

continue;

}

bool mysql_data_seek(int result_identifier, int row_number);

continue;

, trong đó result_identifier là mã số trả về của hàm mysql_query(), mysql_db_query(), mysql_list_tables(), mysql_list_dbs(), row_number là chỉ số của bản ghi mà cần đặt con trỏ vào.

}

Hàm trả về true nếu thành công, false nếu lỗi.

?>

mysql_num_rows()

Hàm lấy về một dòng kết quả như là một mảng liên kết.

Cú pháp:

array mysql_fetch_assoc(int result_identifier);

, trong đó result_identifier là mã số trả về của hàm mysql_query() hoặc mysql_db_query().

mysql_affected_rows()

Cú pháp:

array mysql_fetch_assoc(int result_identifier);

, trong đó result_identifier là mã số trả về của hàm mysql_query() hoặc mysql_db_query().

Hàm trả về một mảng tương ứng với một bản ghi được lấy về và trả lại FALSE nếu không có bản ghi nào. Hàm này tương đương với hàm array mysql_fetch_array() với tham số result_type là: MYSQL_ASSOC.

Ví dụ:

- MYSQL_BOTH: trả lại mảng chứa đựng các chỉ số gồm cả các con số và chỉ số liên kết.

$mysql = “select id, name from ds_thanhvien”;

$result = mysql_db_query(“php”, $mysql);

Cú pháp:

array mysql_fetch_assoc(int result_identifier);

, trong đó result_identifier là mã số trả về của hàm mysql_query() hoặc mysql_db_query().

Hàm trả về một mảng tương ứng với một bản ghi được lấy về và trả lại FALSE nếu không có bản ghi nào. Hàm này tương đương với hàm array mysql_fetch_array() với tham số result_type là: MYSQL_ASSOC.

Ví dụ:

$mysql = “select id, name from ds_thanhvien”;

$link = mysql_connect($host, $user, $password);

$result = mysql_db_query(“php”, $mysql);

while ($row = mysql_fetch_assoc($result)){

echo $row[“id”];

?>

echo $row[“name”];

Di chuyển con trỏ bên trong “tập kết quả” (có được sau khi câu truy vấn SELECT được thực hiện).

Cú pháp:

bool mysql_data_seek(int result_identifier, int row_number);

, trong đó result_identifier là mã số trả về của hàm mysql_query() hoặc mysql_db_query().

Hàm trả về một mảng tương ứng với một bản ghi được lấy về và trả lại FALSE nếu không có bản ghi nào. Hàm này tương đương với hàm array mysql_fetch_array() với tham số result_type là: MYSQL_ASSOC.

mysql_tablename()

Cú pháp:

Ví dụ:

, trong đó result_identifier là mã số trả về của hàm mysql_query(), mysql_db_query(), mysql_list_tables(), mysql_list_dbs(), row là bản ghi mà ta sẽ lấy dữ liệu, field là trường trong dòng row mà ta sẽ lấy dữ liệu.

mysql_field_name()

Cú pháp:

$mysql = “select id, name from ds_thanhvien”;

$link = mysql_connect($host, $user, $password);

mysql_list_dbs()

Cú pháp:

$result = mysql_db_query(“php”, $mysql);

while ($row = mysql_fetch_assoc($result)){

mysql_list_tables()

Cú pháp:

mysql_list_tables(string database [, int link_identifier]);

Hàm trả về danh sách tất cả câc bảng trong một CSDL MySQL, thành công trả về một result identifier, giá trị false nếu có lỗi.

mysql_list_fields()

Cú pháp:

mysql_list_tables(string database [, int link_identifier]);

Hàm trả về danh sách tất cả câc bảng trong một CSDL MySQL, thành công trả về một result identifier, giá trị false nếu có lỗi.

mysql_num_fields()

Cú pháp:

mysql_list_tables(string database [, int link_identifier]);

Hàm trả về danh sách tất cả câc bảng trong một CSDL MySQL, thành công trả về một result identifier, giá trị false nếu có lỗi.

mysql_num_rows()

Cú pháp:

mysql_list_tables(string database [, int link_identifier]);

Hàm trả về danh sách tất cả câc bảng trong một CSDL MySQL, thành công trả về một result identifier, giá trị false nếu có lỗi.

mysql_field_type()

Cú pháp:

mysql_list_fields(string database_name, string table_name [, int link_identifier]);

Hàm trả về thông tin liên quan đến một bảng dữ liệu.

mysql_field_len()

Cú pháp:

mysql_num_fields(int result_identifier);(int result_identifier, int field_offset);

Hàm trả về số trường trong tập kết quả.

mysql_fetch_lengths()

Cú pháp:

mysql_num_rows(int result_identifier);(int result_identifier);

Trả về số bản ghi trong tập kết quả, hàm này chỉ có giá đối với các câu lệnh SELECT, để lấy lại số bản ghi được trả lại từ các lệnh: INSERT, UPDATE hoặc DELETE, dùng mysql_affected_rows().

mysql_errno()

Cú pháp:

mysql_field_type(int result_identifier, int field_index);([int link_identifier]);

Hàm trả về kiểu dữ liệu của trường tại vị trí field_index trong mã result_identifier.

mysql_error()

Cú pháp:

mysql_field_len(int result_identifier, int field_offset);

Hàm trả về độ dài của trường được chỉ định thông qua tham số field_offset.

mysql_fetch_field()

Cú pháp:

mysql_fetch_lengths(int result_identifier);

Hàm trả về một mảng tương ứng với các độ dài của mỗi trường trong bản ghi được lấy về bởi hàm mysql_fetch_row() hoặc false nếu có lỗi.