Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2015, 15:11   #1
Clockgen
Пользователь
 
Регистрация: 20.11.2008
Сообщений: 66
Радость Группировка данных

Подскажите пожалуйста, есть данные в таблице бд:

Цитата:
6--KP-2012 SGС---10
7--KP-2012 SGD---9
7--KP-2012 SGD---8
7--KP-2012 SGD---6
Первый столбец - это индекс, второй-название, третий- количество. Я никак не могу понять как мне сделать так, чтобы в итоге убрать одинаковые названия, оставить только одно и общую сумму.

Вот мой код:
Код:
$e1 = mysql_query( "SELECT svet.id_sv, svet.nazvanie, Prom_10.id_sv, Prom_10.id_plat,Prom_10.kolichestvo
                        FROM svet
                        INNER JOIN Prom_10 ON svet.id_sv = Prom_10.id_sv
                        ");

while ($r1 = mysql_fetch_array($e1, MYSQL_ASSOC)) 
 { $id_plat1[] = $r1['id_plat'];
if (($r1['id_plat'] == '1')or($r1['id_plat'] == '15')or($r1['id_plat'] == '22')or($r1['id_plat'] == '23')or($r1['id_plat'] == '24'))
  {
       $id_sv[] = $r1['id_sv'];
         $id_sv1[] = $r1['id_sv'];
          $nazvanie1[] = $r1['nazvanie']; 
           $kolichestvo1[] = $r1['kolichestvo'];
             $b1++;
           /*for ($j; $j<=$b1; $j++ ) {
            for ($j1; $j1<=$b1; $j1++ ) {
             if ($id_sv[$j] == $id_sv1[$j1++]) 
             {    $k = $b--;   
           //    $kolichestvo2[$j][$j1] = SUM($r1['kolichestvo']) ;
                  $nazvanie1[$j] = $r1['nazvanie']; }
             else {
                 $k = $b--;
           //     $kolichestvo2[$j][$j1] = $kolichestvo1[$j];
                   } 
           } 
 //echo $kolichestvo2[$j][$j1], "<BR>";
}   */

 
//echo $r1['id_sv'],"--", $r1['nazvanie'], "---",$r1['kolichestvo'],"<BR>";
            
  }
 }
Как сделать, чтобы в итоге получилось вот так:

Цитата:
KP-2012 SGС---10
KP-2012 SGD---23
Подскажите пожалуйста, буду очень благодарна.

Последний раз редактировалось Clockgen; 30.01.2015 в 16:00.
Clockgen вне форума Ответить с цитированием
Старый 30.01.2015, 15:21   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Странная у вас таблица, откуда там одинаковые названия взялись?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 30.01.2015, 15:30   #3
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,714
По умолчанию

Средствами БД делается это - http://dev.mysql.com/doc/refman/5.0/...functions.html
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 30.01.2015, 15:50   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

GROUP BY не?
ADSoft вне форума Ответить с цитированием
Старый 30.01.2015, 15:51   #5
Clockgen
Пользователь
 
Регистрация: 20.11.2008
Сообщений: 66
По умолчанию

GROUP BY - это же нужно использовать в первом запросе, где $e1 = mysql_query( ..), если мы его используем, то как быть с суммой, ее мы в этом запросе получить не можем, тк он просуммирует всё, что с этими индексами связано, а нам нужно не все, а только конткретные строки

// $kolichestvo2[$j][$j1] = SUM($r1['kolichestvo']) ;
$nazvanie1[$j] = $r1['nazvanie']; }


я думаю,где то здесь должно быть GROUP BY.

Последний раз редактировалось Clockgen; 30.01.2015 в 16:00.
Clockgen вне форума Ответить с цитированием
Старый 30.01.2015, 16:30   #6
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,714
По умолчанию

Цитата:
тк он просуммирует всё
Ну да строки с коровами сложит и умножит на постоянную Планка.
Цитата:
а только конткретные строки
В запросе нет WHERE - значит строки все.
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 30.01.2015, 16:52   #7
Clockgen
Пользователь
 
Регистрация: 20.11.2008
Сообщений: 66
По умолчанию

вы не могли бы с кодом помочь?
Clockgen вне форума Ответить с цитированием
Старый 30.01.2015, 17:07   #8
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Код:
mysql> SELECT `id_sv`, `nazvanie`, `kolichestvo` FROM `svet`;
+-------+--------------+-------------+
| id_sv | nazvanie     | kolichestvo |
+-------+--------------+-------------+
|     6 | KP-2012 SGC  |          10 |
|     7 | KP-2012 SGD  |           9 |
|     7 | KP-2012 SGD  |           8 |
|     7 | KP-2012 SGD  |           6 |
+-------+--------------+-------------+
4 rows in set (0.01 sec)

mysql> SELECT `nazvanie`, SUM(`kolichestvo`) AS `kolichestvo` FROM `svet` GROUP BY `id_sv`;
+--------------+-------------+
| nazvanie     | kolichestvo |
+--------------+-------------+
| KP-2012 SGC  |          10 |
| KP-2012 SGD  |          23 |
+--------------+-------------+
2 rows in set (0.00 sec)
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
группировка данных govorun1 Microsoft Office Access 4 05.12.2014 17:54
группировка данных в Excel zorka07 Microsoft Office Excel 1 26.02.2013 23:10
Группировка одинаковых данных shaleiko Microsoft Office Excel 1 22.05.2012 00:41
Группировка данных Proffesor Kreng Microsoft Office Access 4 20.01.2011 15:35