Консультация № 66105
08.12.2006, 14:46
0.00 руб.
0 2 2
Здравствуйте!

Не могу понять в чем глюк. Выдаёт:

Warning: mysql_fetch_array() [
function.mysql-fetch-array]:
The result type should be either MYSQL_NUM, MYSQL_ASSOC or MYSQL_BOTH. in z:\home\einfodrom.net\www\pages\ru\catalogue\themes1.txt on line 41

На этой строчке:
while ($line = mysql_fetch_array($vopr, $conn))

Если пишу так:
while ($line = mysql_fetch_array($vopr))
То всё нормально.

С указателем $conn вроде всё в порядке. По крайней мере в предыдущей строчке всё ок. И до этого тоже нормально.

$vopr = mysql_query("select * from `cat_t1`;", $conn);

А самое интересное, то что эта же самая строчка раньше ошибок не вызывала.
while ($line = mysql_fetch_array($vopr, $conn))

Я модифицировал немного код, даже не касающийся бд, а в результате такая ошибка. В чем тут дело? И как это лечить?

Обсуждение

Неизвестный
08.12.2006, 14:56
общий
это ответ
Здравствуйте, Талипов А Н!
функция
array mysql_fetch_array ( resource result [, int result_type] )
Первый аргумент - указатель на результат запроса возвращаемый mysql_query;
Второй опциональный аргумент result_type в функции mysql_fetch_array() -- константа и может принимать следующие значения: MYSQL_ASSOC, MYSQL_NUM и MYSQL_BOTH. Эта возможность добавлена в PHP 3.0.7. Значением по умолчанию является: MYSQL_BOTH.
Указатель на соединение здесь не нужен.
Неизвестный
08.12.2006, 14:56
общий
это ответ
Здравствуйте, Талипов А Н!
mysql_fetch_array вторым параметром принимает не идентификатор подключения а способ индексации возвращаемого массива:
цыфровой: $line[0] - первое поле $line[1] - второе и т.д.
ассоциативный: $line[‘field_name‘] - поле с названием field_name
оба: массив в два раза больше и каждое значение можно достать и по названию поля, и по порядковому номеру
Форма ответа