Руководство по PHP
Пред. |  | След.

# mysql_fetch_array

(PHP 3, PHP 4 , PHP 5)

mysql_fetch_array -- Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба.

## Описание

array mysql_fetch_array ( resource result [, int result_type] )

Возвращает массив с обработанным рядом результата запроса, или `FALSE`, если рядов больше нет.

mysql_fetch_array() расширенная версия функции mysql_fetch_row(). В дополнении к хранению значений в массиве с численными индексами, функция возвращает значения в массиве с индексами по названию колонок.

Если несколько колонок в результате будут иметь одинаковые названия, последняя колонка будет возвращена. Чтобы получить доступ к первым, используйте численные индексы массива или алиасы в запросе. В случае алиасов используйте именно их -- вы не сможете использовать настоящие имена колонок, как например не сможете использовать 'field' в нижеописанном примере.

Пример 1. Запрос с дублирующимися именами колонок
    select table1.field as foo, table2.field as bar from table1, table2

Важно заметить, что mysql_fetch_array() работает НЕ медленне, чем mysql_fetch_row(), в то время, как предоставляет более удобный доступ к данным.

Второй опциональный аргумент result_type в функции mysql_fetch_array() -- константа и может принимать следующие значения: MYSQL_ASSOC, MYSQL_NUM и MYSQL_BOTH. Эта возможность добавлена в PHP 3.0.7. Значением по умолчанию является: MYSQL_BOTH.

Используя MYSQL_BOTH, вы получите массив, состоящий как из ассоциативных индексов, так и из численных. MYSQL_ASSOC вернёт только ассоциативные соответствия (аналогично функции mysql_fetch_assoc() и MYSQL_NUM только численные (аналогично функции mysql_fetch_row()).

> Замечание: Имена полей, возвращаемые этой функцией, регистро-зависимы.

Пример 2. mysql_fetch_array() с MYSQL_NUM
`<?php mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error()); mysql_select_db("mydb"); $result = mysql_query("SELECT id, name FROM mytable"); while ($row = mysql_fetch_array($result, MYSQL_NUM)) { printf ("ID: %s Name: %s", $row[0], $row[1]); } mysql_free_result($result); ?>`

Пример 3. mysql_fetch_array() с MYSQL_ASSOC
`<?php mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error()); mysql_select_db("mydb"); $result = mysql_query("SELECT id, name FROM mytable"); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { printf ("ID: %s Name: %s", $row["id"], $row["name"]); } mysql_free_result($result); ?>`

Пример 4. mysql_fetch_array() с MYSQL_BOTH
`<?php mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error()); mysql_select_db("mydb"); $result = mysql_query("SELECT id, name FROM mytable"); while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { printf ("ID: %s Name: %s", $row[0], $row["name"]); } mysql_free_result($result); ?>`

См. также mysql_fetch_row() и mysql_fetch_assoc().

Пред. | Начало | След.
mysql_escape_string | Уровень выше | mysql_fetch_assoc