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]   

> Без описания
Alpinist
Отправлено: 17 Января, 2011 - 08:23:20
Post Id


Новичок


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


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




Простой пример:
$result = mysql_query($sql,$link);
while($row=mysql_fetch_assoc($result)) {

...

}

После обхода массива не могу снова получить результат запроса, $result2 = $result тоже не помагает, я думаю что передается ссылка на область в памяти которая и обрабатывается, но как тогда снова использовать результат запроса, не выполнять же его повторно...? На ум приходит только добавить функцию в которую при надобности загоняем результат запроса, а она вернет массив с результатом.
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Января, 2011 - 08:36:39
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. function query($query) {
  2.         $result = mysql_query($query) or die(mysql_error());
  3.         if (mysql_num_rows($result) > 0) {
  4.                 while ($row = mysql_fetch_assoc($result)) {
  5.                         $data[] = $row;
  6.                         }
  7.                 mysql_free_result($result);
  8.                 }
  9.         else $data = false;
  10.         return $data;
  11.         }

На выходе будет ассоциативный массив c ключами как имена столбцов в таблице, например такой: $res[0]['name'], $res[1]['name'].........
 
 Top
Alpinist
Отправлено: 17 Января, 2011 - 08:41:24
Post Id


Новичок


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


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




Значит я был прав.
DeepVarvar, Спасибо за текст, избавил от писанины ;)
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Января, 2011 - 08:52:54
Post Id



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


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


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




Alpinist не за что )))
 
 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