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]   

> Без описания
3d_killer
Отправлено: 29 Августа, 2013 - 10:00:19
Post Id



Участник


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


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




CODE (SQL):
скопировать код в буфер обмена
  1. $DBH->prepare("SELECT * FROM db_comment GROUP BY email WHERE id_menu=:id AND answer=1 AND !id=:id_comment");

не работает.
смысл такой:
группировка по email чтобы совпадающий email был в массиве только один вывод так:
PHP:
скопировать код в буфер обмена
  1. $STH2->bindParam(':id',$_POST['id_page'], PDO::PARAM_STR);
  2. $STH2->bindParam(':id_comment',$id, PDO::PARAM_STR);
  3. $STH2->execute();
  4. while($result1 = $STH2->fetch(PDO::FETCH_ASSOC))
  5.         {
  6.                 echo result1['name'].$result1['email'];
  7.         }

где ошибка не пойму не выводит ничего
 
My status
 Top
avtor.fox
Отправлено: 29 Августа, 2013 - 10:18:26
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




Не совсем понятно, что именно требуется. Если мне нужно собрать массив, где ключом будет e-mail, а значением все юзеры (с этим мылом) то всё это выглядит так:

PHP:
скопировать код в буфер обмена
  1. $STH->execute([
  2.     ':id'            => ID,
  3.     ':id_comment'    => COMMENT
  4. ]); //упрощённая запись
  5. $rgData = [];
  6. while($result1 = $STH->fetch(PDO::FETCH_ASSOC)){
  7.     $rgData[$result1['e-mail'][] = $result1['name'];
  8. }


И возможно, что id !=, а не !id = и $result1
 
 Top
3d_killer
Отправлено: 29 Августа, 2013 - 10:31:59
Post Id



Участник


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


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




требуется собрать массив (все комментарии относящиеся к данному пункту меню)
получить все почтовые ящики с этих записей, но ящики если есть дубли то в массиве один раз этот ящик должен фигурировать например таблица:
id_comment | email
1|1@site.ru
1|2@site.ru
1|3@site.ru
1|1@site.ru
1|6@site.ru
1|2@site.ru
получить
1@site.ru, 2@site.ru, 3@site.ru, 6@site.ru

кстати на упрощенную запись ругается редактор

(Отредактировано автором: 29 Августа, 2013 - 10:36:11)

 
My status
 Top
avtor.fox
Отправлено: 29 Августа, 2013 - 10:50:48
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




Возможно, что можно использовать DISTINCT -

PHP:
скопировать код в буфер обмена
  1. $STH = $DBH->prepare("
  2.         SELECT
  3.                 DISTINCT(email)
  4.         FROM
  5.                 db_comment
  6.         WHERE
  7.                 id_menu=:id
  8.         AND
  9.                 answer=1
  10.         AND
  11.                 id!=:id_comment
  12. ");
  13. $STH->execute(array("
  14.         ':id'           => ID,
  15.         ':id_comment'   => COMMENT
  16. "));
  17. $rgData = array();
  18. while($result1 = $STH->fetch(PDO::FETCH_ASSOC)){
  19.         $rgData[] = $result1['email'];
  20. }


[] — короткое определение массива, но я имел ввиду не его. доступно с 5.4
привязка значений сразу в execute - про них я говорил)
 
 Top
3d_killer
Отправлено: 29 Августа, 2013 - 11:01:45
Post Id



Участник


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


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




Спасибо то что нужно.
avtor.fox пишет:
[] — короткое определение массива, но я имел ввиду не его. доступно с 5.4
привязка значений сразу в execute - про них я говорил)

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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB