Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > цикл foreach


Автор: Rio39 11.12.2010, 18:12
Есть ткой вот код:
Код

$result=mysql_query($query);
         if($result){
            $row = mysql_fetch_array($result);
                foreach($row as $value){
                      print $value; 
                }
        }

Проблема в том, что каждый элемент масива $row выводится по 2 раза.
Я бы использовал while, но количество элементов массива $row неизвестно.

Автор: Muerto 11.12.2010, 18:34
А может два раза выводится потому что их у тебя там два ?  smile 

Ну вижу ещё что пробелов нету...

А так же попробуй print_r сделать... глянуть что у тебя там за массив такой  smile 

Автор: bars80080 11.12.2010, 19:03
mysql_fetch_array в самом деле достаёт два массива: числовой и ассоциативный. если нужно только ассоциативный, то используйте в этой функции необходимую константу (какую - посмотрите в документации), либо функцию mysql_fetch_assoc

Автор: Rio39 11.12.2010, 19:41
Цитата(bars80080 @ 11.12.2010,  19:03)
mysql_fetch_array в самом деле достаёт два массива: числовой и ассоциативный. если нужно только ассоциативный, то используйте в этой функции необходимую константу (какую - посмотрите в документации), либо функцию mysql_fetch_assoc

Спасибо, mysql_fetch_assoc() помог.
Там фигня в том, что делаю универсальную функцию вывода таблицы(ну как один из вариантов где у меня эта штука происходит).
Так как количество столбцов в разных таблицах может быть разное, то использую foreach. С этой ошибкой выводило каждый столбец по 2 раза.

Автор: Muerto 11.12.2010, 20:21
bars80080, Хм кстати и не подумал что  foreach два раза пройдется по числовому индексу и именому , а ведь верно smile 

Автор: bars80080 11.12.2010, 23:03
Цитата(Rio39 @  11.12.2010,  18:41 Найти цитируемый пост)
Там фигня в том, что делаю универсальную функцию вывода таблицы(ну как один из вариантов где у меня эта штука происходит).

а каким образом вставляются имена колонок?
ведь если бы был известен массив имён колонок, то не сложно было бы вывести и массив данных $row[$colname[$i]]


п.с. имена колонок можно получить с запроса DESCRIBE

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)