Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Выборка, коректировка

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
formus
Отправлено: 04 Мая, 2013 - 21:52:46
Post Id


Новичок


Покинул форум
Сообщений всего: 27
Дата рег-ции: Окт. 2012  


Помог: 1 раз(а)




Привет всем!

PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT * FROM users",$db);
  2. while ($row = mysql_fetch_assoc($result)){
  3.     foreach ($row as $key => $value){
  4.         echo $key, $value;
  5.     }
  6. }


Выводит в формате: ключ-значение, ключ-значение и т.д., а мне необходимо ключ-значение, значение и т.д.
 
 Top
OrmaJever Модератор
Отправлено: 04 Мая, 2013 - 21:57:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




ну вобще немного необычно использовать в цикле выборки foreach, т.к. ключами масива являются имена полей в бд, и человек который пишет скрипт должен их знать полюбому.
Запишите выборку в масив вида
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT * FROM users",$db);
  2. $arr = array();
  3. while ($row = mysql_fetch_assoc($result)){
  4.    $arr['rowname1'][] = $row['rowname1'];
  5.    $arr['rowname2'][] = $row['rowname2'];
  6.    // и тд.
  7. }
  8. print_r($arr);

ну или если полей и правда много и нужно имено такая задача то можно и так
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT * FROM users",$db);
  2. $arr = array();
  3. while ($row = mysql_fetch_assoc($result)){
  4.     foreach ($row as $key => $value){
  5.         $arr[$key][] = $value;
  6.     }
  7. }
  8. print_r($arr);

хотя цикл в цикле это не хорошо


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
formus
Отправлено: 05 Мая, 2013 - 09:36:29
Post Id


Новичок


Покинул форум
Сообщений всего: 27
Дата рег-ции: Окт. 2012  


Помог: 1 раз(а)




Спасибо, OrmaJever, применил второй вариант. Вывод получился вида: Array ( [id] => Array ( [0] => 203 [1] => 158 ) как бы его привести к такому виду: id: 203, 158. Раньше в цикле делал так:

PHP:
скопировать код в буфер обмена
  1. print <<<HERE
  2. <div>$key, $value</div>
  3. HERE;


сейчас не нашел как и куда прикрутить)
 
 Top
OrmaJever Модератор
Отправлено: 05 Мая, 2013 - 09:53:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




PHP:
скопировать код в буфер обмена
  1. foreach($arr as $k > $v) {
  2.    echo $k, ': ', join(',', $v);
  3. }

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


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
formus
Отправлено: 05 Мая, 2013 - 10:31:22
Post Id


Новичок


Покинул форум
Сообщений всего: 27
Дата рег-ции: Окт. 2012  


Помог: 1 раз(а)




OrmaJever пишет:
PHP:
скопировать код в буфер обмена
  1. foreach($arr as $k > $v) {
  2.    echo $k, ': ', join(',', $v);
  3. }

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


Спасибо, OrmaJever, я только учусь) Знак равенства здесь $k > $v не поставили, чтобы я развивался?)
 
 Top
V2oD2o
Отправлено: 14 Мая, 2013 - 10:17:44
Post Id


Частый гость


Покинул форум
Сообщений всего: 143
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




а зачем цикл то ? что за варварство ?
 
 Top
imya
Отправлено: 14 Мая, 2013 - 11:09:58
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


Помог: 19 раз(а)




V2oD2o пишет:
а зачем цикл то ? что за варварство ?

Без цикла выведется первая запись только.


-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB