(PHP 4, PHP 5)
mysql_fetch_array — Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
Данное расширение устарело, начиная с версии PHP 5.5.0, и будет удалено в будущем. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:
$result
[, int $result_type
= MYSQL_BOTH
] )Возвращает массив, соответствующий обработанному ряду результата запроса и сдвигает внутренний указатель данных вперед.
result
Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().
result_type
Тип возвращаемого массива. Является константой и может принимать
следующие значения: MYSQL_ASSOC
,
MYSQL_NUM
и
MYSQL_BOTH
.
Возвращает массив строк, соответствующих обработанному ряду результата
запроса, или FALSE
, если рядов больше нет. Тип возвращаемого
массива зависит от значения параметра result_type
.
При использовании MYSQL_BOTH
(по умолчанию),
вы получите массив, состоящий как из ассоциативных индексов,
так и из численных. MYSQL_ASSOC
вернёт
только ассоциативные индексы (аналогично функции
mysql_fetch_assoc()), а
MYSQL_NUM
- только численные (аналогично
функции mysql_fetch_row()).
Если несколько колонок в результате будут иметь одинаковые названия, то будет возвращена последняя колонка. Чтобы получить доступ к другим колонкам с тем же именем, используйте численные индексы массива или псевдонимы в запросе. В случае псевдонимов используйте именно их - вы не сможете использовать настоящие имена колонок.
Пример #1 Запрос с применением псевдонимов для дублирующихся имен колонок
SELECT table1.field AS foo, table2.field AS bar FROM table1, table2
Пример #2 mysql_fetch_array() с MYSQL_NUM
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Ошибка соединения: " . 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 Имя: %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("Ошибка соединения: " . 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 Имя: %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("Ошибка соединения: " . 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 Имя: %s", $row[0], $row["name"]);
}
mysql_free_result($result);
?>
Замечание: Производительность
Важно заметить, что mysql_fetch_array() работает незначительно медленнее, чем mysql_fetch_row(), в то же время предоставляя намного более удобный доступ к данным.
Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.
Замечание: Эта функция устанавливает NULL-поля в значение
NULL
PHP.