mysql_fetch_array
(PHP 4, PHP 5)
mysql_fetch_array —
Обрабатывает ряд результата запроса, возвращая ассоциативный массив,
численный массив или оба.
Описание
array mysql_fetch_array
( resource $result
[, int $result_type
] )
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().