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]   

> Без описания
dr_Lev
Отправлено: 26 Декабря, 2008 - 21:24:17
Post Id



Новичок


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


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




Привет всем, помогите разобраться, почему не работает такая штука:
PHP:
скопировать код в буфер обмена
  1.  
  2. /* Здесь я из базы вытягиваю данные в двумерный массив $result */
  3. $sql = "SELECT * FROM `table`";
  4. $query = mysql_query($sql,$link);
  5. $j=0;
  6. while ($row = mysql_fetch_array($query)) // пока есть еще записи в таблице
  7. {
  8.    for ($i=0;$i<mysql_num_fields($query);$i++) // для всех полей текущей записи
  9.    {
  10.       $result[$j][mysql_field_name($query,$i)]=$row[$i];
  11.    }
  12.    $j++;
  13. }
  14.  
  15. echo var_dump($result[0]); /* пишет  [i]array(4) { ["id"]=>  string(1) "1" ["fullname"]=>  string(4) "name" ["rules"]=>  string(0) "" ["email"]=>  string(5) "email" } [/i] */
  16.  

пытаюсь обратиться к элементу массива
PHP:
скопировать код в буфер обмена
  1.  
  2. echo $result[0]['email'];
  3. //Выдает ошибку Notice: Undefined index: email in ................
  4. /* а когда так */
  5. echo $result[0][3]; //Ошибки нет
  6.  
 
 Top
E-Pro
Отправлено: 27 Декабря, 2008 - 00:19:33
Post Id



Частый гость


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


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




dr_Lev пишет:
/* Здесь я из базы вытягиваю данные в двумерный массив $result */

Однако
 
 Top
Champion Супермодератор
Отправлено: 27 Декабря, 2008 - 09:31:08
Post Id



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


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


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




1- зачам так извращаться с данными? Строки из БД надо брать по одной по меренадобности. Зачем сразу всё вытаскивать?
2-var_dump снова и внимательно. там нет такого элемента. И вар_дамп не пишет так, как вы написали.
Цитата:
[i]
 
 Top
dr_Lev
Отправлено: 27 Декабря, 2008 - 10:25:38
Post Id



Новичок


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


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




Champion пишет:
зачам так извращаться с данными? Строки из БД надо брать по одной по меренадобности. Зачем сразу всё вытаскивать?

Не хочется загружать базу данных, потому как слишком часто прийдется в базу заглядывать, а сервак слабенький, тормоза начнутся.
Champion пишет:
var_dump снова и внимательно. там нет такого элемента. И вар_дамп не пишет так, как вы написали.

прошу прощения =) это я хотел поставить [ i ] [ / i ], а они не сработали =)
(Добавление)
Чет мне кажется, что все должно быть предельно просто =).
PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT * FROM `table`";
  2. $query = mysql_query($sql,$link);
  3. while ($row = mysql_fetch_assoc($query))
  4. {
  5.    $result[] = $row;
  6. }
  7.  


В понедельник проверю...
 
 Top
Champion Супермодератор
Отправлено: 27 Декабря, 2008 - 11:10:53
Post Id



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


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


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




dr_Lev пишет:
Не хочется загружать базу данных, потому как слишком часто прийдется в базу заглядывать, а сервак слабенький, тормоза начнутся.
Вам от этого больше раз к базе данных обращаться не прийдется. А вот держать данных в памяти будете гораздо меньше
 
 Top
dr_Lev
Отправлено: 27 Декабря, 2008 - 21:42:43
Post Id



Новичок


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


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




Champion пишет:
dr_Lev пишет:
Не хочется загружать базу данных, потому как слишком часто прийдется в базу заглядывать, а сервак слабенький, тормоза начнутся.
Вам от этого больше раз к базе данных обращаться не прийдется. А вот держать данных в памяти будете гораздо меньше

Не знал, спасибо за разъяснение =). Так и поступлю.
 
 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