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]   

> Без описания
sofck
Отправлено: 26 Апреля, 2010 - 12:16:26
Post Id



Гость


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


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




CODE (htmlphp):
скопировать код в буфер обмена
  1. $sql = mysql_query("SELECT * FROM table");
  2. $result =mysql_fetch_array($sql);
  3. do
  4. {
  5. $data[]=$result;
  6. }while($result=mysql_fetch_array($sql));
  7. return $data;


предположим что в table строки id, name, info.
как сделать так что бы в массиве $data сохранялись префиксы из бд?
тоисть $result['name'][0] был в переменной $data['name'][0]
а не в $data[1][0] как сейчас
 
 Top
Мелкий Супермодератор
Отправлено: 26 Апреля, 2010 - 12:28:19
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Использовать не mysql_fetch_array, а mysql_fetch_assoc
Только будет $data[0]['id']

(Отредактировано автором: 26 Апреля, 2010 - 12:29:08)



-----
PostgreSQL DBA
 
 Top
sofck
Отправлено: 26 Апреля, 2010 - 12:40:49
Post Id



Гость


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


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




Мелкий пишет:
Использовать не mysql_fetch_array, а mysql_fetch_assoc
Только будет $data[0]['id']

а удобный для меня никак вид никак не сохранить??? что без обработки, что то что вы говорить - одинаково не подходит((
 
 Top
JustUserR
Отправлено: 26 Апреля, 2010 - 12:57:56
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




sofck пишет:
А удобный для меня никак вид никак не сохранить??? что без обработки, что то что вы говорить - одинаково не подходит
Создайте массив $arr=array() и сделайте следующую обработку в цикле while($arr[]=mysql_fetch_assoc($result)) {} - после чего можете напечатать содержимое массива print_r($arr) и убедиться что он действительно является хеш-массивом и содержит необходимые ключи


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Мелкий Супермодератор
Отправлено: 26 Апреля, 2010 - 13:30:30
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




sofck пишет:
а удобный для меня никак вид никак не сохранить???

т.е. именно $data['name'][0]?
Тоже можно:
PHP:
скопировать код в буфер обмена
  1. $sql = mysql_query("SELECT `id`,`name`,`info` FROM `table`");
  2. $data = array();
  3. while($result=mysql_fetch_assoc($sql)) {
  4. $data['id'][]=$result['id'];
  5. $data['name'][]=$result['name'];
  6. $data['info'][]=$result['info'];
  7. };
  8. return $data;


Или для более гибкого варианта - можно с функциями типа key поиграться


-----
PostgreSQL DBA
 
 Top
sofck
Отправлено: 26 Апреля, 2010 - 16:28:17
Post Id



Гость


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


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




JustUserR пишет:
sofck пишет:
А удобный для меня никак вид никак не сохранить??? что без обработки, что то что вы говорить - одинаково не подходит
Создайте массив $arr=array() и сделайте следующую обработку в цикле while($arr[]=mysql_fetch_assoc($result)) {} - после чего можете напечатать содержимое массива print_r($arr) и убедиться что он действительно является хеш-массивом и содержит необходимые ключи

по вашему примеру тоже получаеться
массив такого типа $arr[0]['name'];
(Добавление)
Мелкий пишет:
sofck пишет:
а удобный для меня никак вид никак не сохранить???

т.е. именно $data['name'][0]?
Тоже можно:
PHP:
скопировать код в буфер обмена
  1. $sql = mysql_query("SELECT `id`,`name`,`info` FROM `table`");
  2. $data = array();
  3. while($result=mysql_fetch_assoc($sql)) {
  4. $data['id'][]=$result['id'];
  5. $data['name'][]=$result['name'];
  6. $data['info'][]=$result['info'];
  7. };
  8. return $data;


Или для более гибкого варианта - можно с функциями типа key поиграться


ну это понятно если самому прописать префиксы массива.
А если поля заранее не известны.?
 
 Top
Мелкий Супермодератор
Отправлено: 26 Апреля, 2010 - 18:32:01
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




sofck, ну про что и говорю: для более гибкого решения можно поиграться.
Например собрать числовой массив, массив с ключами и потом их соединить через array_combine


-----
PostgreSQL DBA
 
 Top
sofck
Отправлено: 26 Апреля, 2010 - 21:20:07
Post Id



Гость


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


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




всем спасибо.... короче в топку!! решил просто везде использовать
mysql_fetch_assoc вместо mysql_fetch_array
))))
 
 Top
JustUserR
Отправлено: 27 Апреля, 2010 - 13:19:39
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




sofck пишет:
Всем спасибо.... короче в топку!! решил просто везде использовать
mysql_fetch_assoc вместо mysql_fetch_array
))))
Пожалуйтса! Однако к данному моменту я догадался что именно вы хотели сделать - это можно реализовать следующим кодом
PHP:
скопировать код в буфер обмена
  1. $old_arr; /* Здесь массив старого типа */   $new_arr=array(); /* Здесь будет массив новго типа */
  2. for($i=0;$i<count($old_arr);$i++)
  3. {foreach($old_arr[$i] as $key=>val)
  4. {if(is_array($new_arr[$key])) {$new_arr[$key]=array();}
  5. else {}
  6. $new_arr[$key][$i]=$val;
  7. }
  8. }


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB