Вывод данных массива с помощью цикла while

Vladimir59

Новичок
Ты не знаешь что такое массив? Честно скажи об этом - тебе объяснят.
В моем представлении массив - последовательность значений, хранящихся в одной переменной.
mysql_fetch_array как я понимаю, извлекает результирующий ряд, как массив.

Говорю честно, специалистом себя не считаю и если мое неверное понимае поправят, буду только рад.

И если тебе его поведение кажется неправильным - у тебя неправильные представления о программировании и пхп. И их надо исправлять. А не искать замену одного кривого кода на другой
Полностью согласен, считаю свой код кривым и ищу правильного решения.

*****, сразу на второе сообщение не ответил, так как заметил не сразу. Смотрел на последние и пропустил.

По поводу последнего вопроса:

на начало ЧЕГО?
Имел ввиду [0] индекс. Может неправильно выразился...
 

kruglov

Новичок
Результат выдачи mysql это не совсем массив.
Хотя аналогия, конечно, есть.

Выхода 2 - сохранить первую строку, выбранную из базы, в переменную, чтобы обработать отдельно. Либо открыть http://php.net/mysql и изучать.
 

BrigadeFuhrer

Новичок
PHP:
while($array_cat=mysql_fetch_array($query_cat)){ 
 //$array_cat содержит текущую строку таблицы, каждый элемент этого масива - колонка текущей строки
 $rowset[] = $array_cat; //добавляем текущую сроку таблицы в новый массив
}

$rowset заполнился, теперь он содержит все строки таблицы, каждая строка - массив, но массив колонок  строки
 $rowset[0]['cat'] - TOYOTA 
 $rowset[1]['cat'] - NISSAN
 $rowset[2]['cat'] - HONDA
так понятно?
 

Фанат

oncle terrible
Команда форума
Говорю честно, специалистом себя не считаю
Да не считай сколько влезет! Какая разница вообще - специалист ты или нет? какое это имеет отношение к вопросу?
и если мое неверное понимае поправят, буду только рад.
ЕСЛИ ТЫ ЕГО ВЫСКАЖЕШЬ - то поправят! Но если ты молчишь, как партизан, то что можно поправить???

теперь переходим к делу.
mysql_fetch_array как я понимаю, извлекает результирующий ряд, как массив.
ты ответил на вопрос, КУДА извлекается результирующий ряд. и все свои манипуляции ты делаешь с УЖЕ ПОЛУЧЕННЫМИ данными.

но все твои вопросы касаются того, ОТКУДА они извлекаются. Если ты снял в банкомате наличные, потом потратил, потом вернул товар в магазин и получил деньги назад - ЭТО КАК_ТО ОТРАЖАЕТСЯ НА СУММЕ В БАНКЕ?!
 

MiksIr

miksir@home:~$
Результат работы базы - матрица, двухмерный массив, состоящий из рядов и колонок.
mysql_fetch_array извлекает ряд, и ставит внутренний указатель на следующий ряд
while сначала выполняет условие, а потом уже код, таким образом ты вызываешь первый раз mysql_fetch_array, указатель сдвигается, а потом запускаешь while который сразу же вызывает mysql_fetch_array еще раз, получая конечно же 2-ю строчку.
do - while работает иначе, там сначала код, а потом условие - и все работает правильно.
Таким образом можешь или использовать do - while или воспользоваться функцией, которую я указал на первой странице - это аналог reset для данных полученных от mysql.
А некоторым местным деятелям и правда не помешал бы штатный психолог. Вне зависимости от того, человек малообразован или туп - ваше поведение лишь ставит вас самих на его уровень.
 

BrigadeFuhrer

Новичок
mysql_fetch_array возвращает текщую строку, а не весь набор данных, при следующем вызове этой функции она возвратит следующую строчку, а если достиг конца набора данных возратит false.
 

Vladimir59

Новичок
Огромное спасибо всем принявшим участие. Разобрался. Извиняюсь за отнятое время.
 

Фанат

oncle terrible
Команда форума
MiksIr, нельзя употреблять слово "массив" в отношении структуры данных, возвращаемой базой.
 

MiksIr

miksir@home:~$
А зачем ты навязываешь свои тараканы?
Массив - это набор данных, идентифицируемых индексом. То, что к нему нельзя обратиться как $result[10] еще не значит, что он не массив.
 

kruglov

Новичок
Тогда любые данные, длина которых больше 1 бита - массив. Хотя почему больше...
 

Фанат

oncle terrible
Команда форума
понятно. не строишь, на самом деле такой.
вопросов больше нет
 

kruglov

Новичок
Харашо.

Любые данные, хранящиеся в виде набора битов, длина которого больше 1 бита - массив.
 

dimagolov

Новичок
MiksIr, а по какой причине библиотечные ф-ии не возвращают результаты запроса 2-мерным массивом сразу, а для чего-то требуют fetch_row ?
 

MiksIr

miksir@home:~$
dimagolov, у вас всех в голове почему-то массив ассоциируется с некой областью памяти, в которой ровными рядами лежат данные. Бред. Массив - это набор данных, а где эти данные лежат - в памяти PHP, в памяти прикладной библиотеки, в памяти базы или вообще отправлены почтой - это все уже реализации доступа к элементам массива и к терминологии отношения не имеют. Есть набор данных - результат запроса, есть возможность выбрать любой элемент по его индексу. Все, этого достаточно.

-~{}~ 15.05.08 16:56:

К слову, а библиотечные функции постгреса умеют возвращать весь запрос 2-мерным массивом, и что?
 

dimagolov

Новичок
MiksIr, ИМХО это ты путаешь наборы данных и структуры данных с массивами. Спор конечно о терменологии, но все же. Да, массив это общая концепция в программировании, но он, массив, имеет конкретную реализацию в каждом ЯП. В C++ это одно, в PHP это другое, в Delphi третее, но везде массив имеет специфические синтаксические структуры специально включенные в синтаксис языка. Говорить о массиве вообще в отрыве от конкретного ЯП не стоит в первую очередь для того, чтобы не запутывать начинающих.
 
Сверху