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 :: Выполнить 1 запрос и использовать его в других функциях

 PHP.SU

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


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

> Без описания
vanicon
Отправлено: 28 Августа, 2011 - 23:02:00
Post Id



Частый посетитель


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


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




Здравствуйте форумчане!
У меня появилась одна проблема которую очень хочется решить, но пока не знаю как это сделать. Есть 2 функции, 1 функция выводит записи моих друзей, 2 функция выводит друзей моих друзей, и в каждой из них мне приходиться узнавать логины моих друзей для дальнейших действий. И получается как бы что одна и таже информация(логины моих друзей) выбирается из БД 2 раза. Думаю нужно сделать 1 запрос к БД для выбора всех моих друзей(логинов) и записать результаты в какой-нибудь массив, и этот массив уже передавать 2 этим функциям. Подскажите как мне это сделать, или же есть какой-нибудь другой вариант решения моей проблемы?


-----
Так было, так есть и так будет
 
 Top
DeepVarvar Супермодератор
Отправлено: 28 Августа, 2011 - 23:17:04
Post Id



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


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


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




Написать один раз класс для работы с БД и соответствующим методом "запоминания" результатов запросов.

Если еще не доросли до ООП - напишите в виде ф-ций используя глобальный массив.
 
 Top
LIME
Отправлено: 28 Августа, 2011 - 23:45:43
Post Id


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


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


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




рекурсия напрашивается какая-нибудь причем
 
 Top
vanicon
Отправлено: 28 Августа, 2011 - 23:46:12
Post Id



Частый посетитель


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


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




Цитата:
Написать один раз класс для работы с БД и соответствующим методом "запоминания" результатов запросов.

Ну насчет класса для работы с БД, он уже есть просто в нем нет этого(запоминание результатов запросов ). А как его можно сделать(запоминание результатов запроса)?


-----
Так было, так есть и так будет
 
 Top
DeepVarvar Супермодератор
Отправлено: 29 Августа, 2011 - 01:26:46
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. private $results = array();
  2.  
  3. function __construct() { ........
  4. ........
  5.  
  6. function saveResult($name,$result) {
  7.   $this->results[$name] = $result;
  8.   }
  9.  
  10. function getResult($name) {
  11.   return $this->results[$name];
  12.   }
  13. .......

PHP:
скопировать код в буфер обмена
  1. $res = $db->query("SELECT bla bla bla... FROM menu bla bla bla...");
  2. $db->saveResult("menu",$res);
  3. unset($res);
  4. .......
  5. .......
  6. var_dump($db->getResult("menu"));

Я не знаю как ваш класс выглядит, поэтому вынес все наружу - а сам бы я сделал все внутри, и некоторые методы приватными.
Показываю тут лишь принцип...
 
 Top
vanicon
Отправлено: 30 Августа, 2011 - 04:56:01
Post Id



Частый посетитель


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


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




Цитата:
Я не знаю как ваш класс выглядит, поэтому вынес все наружу - а сам бы я сделал все внутри, и некоторые методы приватными.
Показываю тут лишь принцип...

DeepVarvar, Прописал в класс 2 метода, 1 для сохранения результата (сделал его исполнения в нутрии конструктора класса и сделал иго приватным), другой для выдачи сохраненного результата(этот метод публичный для использование в не класса). И вроде методы работают, но как то не так как нужно, я могу получить результат запроса но только 1 строку, а мне как бы нужно было выбирать все строки в запросе. Ну чтобы понятнее было вот исходный код самого запроса:
PHP:
скопировать код в буфер обмена
  1.  
  2. function get_php_chitaet($login){
  3. $MySQLConnect = new MySQLConnect(DB_SERVER, DB_USER, DB_PASSWORD);
  4. $MySQLResult = $MySQLConnect->CreateResult("SELECT chitaet FROM info_chitaet WHERE chitatel = '".$login."'", "info_".$db_config, 'chitaet');
  5. $array = mysql_fetch_array($MySQLResult->getResult('chitaet'));
  6. return $array;
  7. }
  8.  

И потом я вызываю эту функцию на главной странице и передаю этот параметр($array) другим функциям нуждающимся в нем.
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $sql_info = get_php_chitaet('ivan');
  3. get_posts('ivan',$sql_info);
  4.  

И в функции get_posts() мне нужно знать всех моих друзей(их логины), но переменная $sql_info хранит массив, но как бы со одним значением(один логин друга)


-----
Так было, так есть и так будет
 
 Top
alxfro
Отправлено: 01 Сентября, 2011 - 10:00:29
Post Id



Частый гость


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


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




Не понял

(Отредактировано автором: 01 Сентября, 2011 - 10:46:04)

 
 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