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 :: Группировка в MYSQL

 PHP.SU

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


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

> Без описания
Elegant
Отправлено: 25 Января, 2015 - 06:32:51
Post Id



Частый гость


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


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




Добрый день! Есть вопрос по правильному запросу для выборки из БД

Для начала есть записи в БД примерно такие
ID Name
1 Банкомат Сбербарнка России
2 Банкомат Сбербарнка России
3 Банкомат Сбербарнка России
4 Филиал Сбербанка России
5 Филиал Сбербанка России
6 Филиал Сбербанка России
7 Филиал Сбербанка России
8 Офис Сбербанка России
9 Просто Сбербанк

Т.е. В базе встрчаеются одинаковые по столбику NAME объекты...

Вот файл PHP который получает по GET запрос "Сбер" и выдает результаты


PHP:
скопировать код в буфер обмена
  1. $massiv = Array();
  2. $sql = "SELECT `org_name`, `org_filial`, `img_prev`
  3. FROM  `zavedenia`
  4. WHERE  `org_name` LIKE  '%".$id."%'
  5. ORDER BY `status_id` DESC , `org_name` ASC
  6. LIMIT 15";
  7. $result = mysql_query($sql)  or die(mysql_error());
  8. while ($itog = mysql_fetch_array($result, MYSQL_ASSOC))
  9.    {
  10.          
  11.             $massiv[] = $itog;
  12.    }
  13. echo '{"level0":'.json_encode($massiv).'}';
  14.  


И вот приходит результата ответа от сервера который выдает все записи с содержанием СБЕР в количестве 15 штук(у меня в базе просто гораздо больше)...
А сообственно вот вопрос...Как в файле сгрупировать все записи по NAME? Не в базе а именно чтобы файл сам группировал?
и выдывал
1 Банкомат Сбербарнка России
1 Филиал Сбербанка России
1 Офис Сбербанка России
1 Просто Сбербанк
 
 Top
alexforce2
Отправлено: 25 Января, 2015 - 06:40:06
Post Id


Новичок


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


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




В запрос надо добавить DISTINCT перед столбцом, значение которого должно быть уникальным в выборке, т.е. запрос будет выглядеть так:
CODE (SQL):
скопировать код в буфер обмена
  1. "SELECT DISTINCT `org_name`, `org_filial`, `img_prev`
  2. FROM  `zavedenia`
  3. WHERE  `org_name` LIKE  '%".$id."%'
  4. ORDER BY `status_id` DESC , `org_name` ASC
  5. LIMIT 15"
 
 Top
Elegant
Отправлено: 25 Января, 2015 - 06:42:53
Post Id



Частый гость


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


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




alexforce2 пишет:
В запрос надо добавить DISTINCT.....

Спасибо помогло
 
 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