Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Запрос в базу MySql (Сортировка одной строки) / 23 сообщений из 23, страница 1 из 1
05.07.2012, 12:38:35
    #37867380
NurlanK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
Доброго времени суток!

Эту тему можно назвать продолжением прошлой темы


У меня имеется некая база на MySQL:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
 -- Database: `qw`

-- Table structure for table `log`

CREATE TABLE IF NOT EXISTS `log` (
  `month` date NOT NULL,
  `status` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

INSERT INTO `log` (`month`, `status`) VALUES
('2012-01-17', 'success'),
('2012-01-03', 'error'),
('2012-02-19', 'success'),
('2012-02-03', 'error'),
('2012-02-03', 'error'),
('2012-03-09', 'error'),
('2012-03-09', 'error'),
('2012-03-15', 'error'),
('2012-03-30', 'success'),
('2012-04-15', 'error'),
('2012-04-16', 'error'),
('2012-05-21', 'error'),
('2012-05-22', 'error'),
('2012-06-01', 'error'),
('2012-06-06', 'error');



Использую следующий код:

Код: php
1.
2.
3.
 $rVisitsResult = mysql_query("SELECT GROUP_CONCAT(t.s) FROM (SELECT COUNT(*) s FROM `log` WHERE status='error' GROUP BY `month` ) t");
 $array = mysql_fetch_row($rVisitsResult); 
  $visites=( $array); 



чтобы увидеть значение использовал:

Код: php
1.
2.
 $array = mysql_fetch_row($rVisitsResult); 
   echo json_encode($array );  



данные выходят следующим образом:
Код: php
1.
 ["1,2,1,2,2,1,1,1"]



Получается не корректный рисунок,т.е. рисует только первый столбик и выходит значение в вверху : 1,2,1,2,2,1,1,1


Теперь по подробнее опишу:

Мне нужно чтобы ответ получился следующем образом:
Код: php
1.
 ["1","2","4","2","2","2"]



Число ошибок по разбитым месяцам, месяцы поставить по возрастанию(Это для инфо):

Код: php
1.
2.
3.
4.
5.
6.
01 месяц - 1 error
02 месяц - 2 error
03 месяц - 4 error
04 месяц - 2 error
05 месяц - 2 error
06 месяц - 2 error



Из того как я описал выше, должен выйти такой ответ:
Код: php
1.
 ["1","2","4","2","2","2"]



Что у меня получается в данное время(из запроса который я использую выше $rVisitsResult=...):

Число ошибок сортированным месяцам и дням(Должен быть только по месяцам), месяцы стоят по возрастанию(Это для инфо)

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
2012.01.03   -1 error
2012.02.03   -2 error
2012.03.09   -2 error
2012.03.15   -1 error
2012.04.15   -1 error
2012.04.16   -1 error
2012.05.21   -1 error
2012.05.22   -1 error
2012.06.01   -1 error
2012.06.06   -1 error



Из того как я описал получаю такой ответ:

Код: php
1.
 ["1,2,1,2,2,1,1,1"] (Должен быть каждому значению отдельная кавычка: "1","2"...)



Прошу помочь запросом. Какой должен быть правильный запрос?
...
Рейтинг: 0 / 0
05.07.2012, 14:56:20
    #37867701
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
NurlanK,

Код: php
1.
SELECT month, COUNT(*) s FROM `log` WHERE status='error' GROUP BY `month`
...
Рейтинг: 0 / 0
09.07.2012, 10:36:02
    #37871222
NurlanK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
РенатNurlanK,

Код: php
1.
SELECT month, COUNT(*) s FROM `log` WHERE status='error' GROUP BY `month`




Есть продвижение в перед:

Код: sql
1.
2.
3.
4.
5.
  $rgVisites = array();
  $rVisitsResult = mysql_query("SELECT COUNT(*) s FROM `log` WHERE status='error' GROUP BY `month`");
  while ($rgRow = mysql_fetch_assoc($rVisitsResult)) {
  $rgVisites[] = $rgRow['s'];
  echo json_encode($rgVisites );  



поулчаю ответ (каждый в отдельную кавычку):

Код: php
1.
["1","2","2","1","1","1","1","1","1","1"]



Но, как я говорил вверху он сортирует по месяцам и дням. А мне нужно только по месяцам.

Прошу, Вас, мне помочь...
...
Рейтинг: 0 / 0
09.07.2012, 10:59:00
    #37871267
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
Код: php
1.
$rVisitsResult = mysql_query("SELECT COUNT(*) s FROM `log` WHERE status='error' GROUP BY `month`");


группировка по полю отсутствующему в выборке.
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_month
...
Рейтинг: 0 / 0
09.07.2012, 12:15:11
    #37871425
NurlanK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
ScareCrow
Код: php
1.
$rVisitsResult = mysql_query("SELECT COUNT(*) s FROM `log` WHERE status='error' GROUP BY `month`");


группировка по полю отсутствующему в выборке.
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_month


Подходящий мне пример не нашел.
Можете по точнее написать? Примерами...
...
Рейтинг: 0 / 0
09.07.2012, 12:22:45
    #37871433
гм,
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
NurlanK
Но, как я говорил вверху он сортирует по месяцам и дням. А мне нужно только по месяцам.

Код: sql
1.
GROUP BY MONTH(`month`)
...
Рейтинг: 0 / 0
09.07.2012, 12:41:23
    #37871468
NurlanK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
гм,NurlanKНо, как я говорил вверху он сортирует по месяцам и дням. А мне нужно только по месяцам.

Код: sql
1.
GROUP BY MONTH(`month`)




Большое Вам спасибо!!! 5++
...
Рейтинг: 0 / 0
09.07.2012, 13:43:30
    #37871568
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
гм,NurlanKНо, как я говорил вверху он сортирует по месяцам и дням. А мне нужно только по месяцам.

Код: sql
1.
GROUP BY MONTH(`month`)


группировка по полую отсутствующему в выборке.
...
Рейтинг: 0 / 0
10.07.2012, 00:46:13
    #37872413
cyrill.ignatov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
Если формат даты не меняется ее год, месяц или день легко вычленить с помощью substring. И сгруппировать по этому значению.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
SELECT GROUP_CONCAT(t.s) FROM
(SELECT 
COUNT(status) as s
FROM `log` 
WHERE status='error'
GROUP BY SUBSTR(month,6,2)
ORDER BY month) t
...
Рейтинг: 0 / 0
10.07.2012, 07:42:47
    #37872523
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
говнокод, кто ж дату в строках хранит, уж на крайняк в интеджере
...
Рейтинг: 0 / 0
10.07.2012, 10:26:51
    #37872708
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
Hettговнокод, кто ж дату в строках хранит, уж на крайняк в интеджере
не спорю говнокод, но с датами вполне можно оперировать как со строками.
...
Рейтинг: 0 / 0
10.07.2012, 11:00:16
    #37872780
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
да можно и с числами в принципе тоже)
...
Рейтинг: 0 / 0
10.07.2012, 11:00:44
    #37872782
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
только какая будет эффективность?
...
Рейтинг: 0 / 0
16.07.2012, 15:28:44
    #37880750
NurlanK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
cyrill.ignatovЕсли формат даты не меняется ее год, месяц или день легко вычленить с помощью substring. И сгруппировать по этому значению.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
SELECT GROUP_CONCAT(t.s) FROM
(SELECT 
COUNT(status) as s
FROM `log` 
WHERE status='error'
GROUP BY SUBSTR(month,6,2)
ORDER BY month) t



В том и дело что месяц и год меняется. Я на пример взял простую БД, год с несколькими месяцами.
...
Рейтинг: 0 / 0
16.07.2012, 15:35:25
    #37880775
NurlanK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
РенатHettговнокод, кто ж дату в строках хранит, уж на крайняк в интеджере
не спорю говнокод, но с датами вполне можно оперировать как со строками.



Вы прочли бы с начала саму статью, только потом пишите свои комменты...
статья: http://php.su/articles/?cat=graph&page=019
обсуждение: http://www.sql.ru/forum/actualthread.aspx?tid=946495
...
Рейтинг: 0 / 0
16.07.2012, 15:37:33
    #37880781
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
NurlanKРенатпропущено...

не спорю говнокод, но с датами вполне можно оперировать как со строками.



Вы прочли бы с начала саму статью, только потом пишите свои комменты...
статья: http://php.su/articles/?cat=graph&page=019
обсуждение: http://www.sql.ru/forum/actualthread.aspx?tid=946495

и чего я оттуда нового должен узнать?
...
Рейтинг: 0 / 0
16.07.2012, 15:38:56
    #37880784
NurlanK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
HettNurlanKпропущено...




Вы прочли бы с начала саму статью, только потом пишите свои комменты...
статья: http://php.su/articles/?cat=graph&page=019
обсуждение: http://www.sql.ru/forum/actualthread.aspx?tid=946495

и чего я оттуда нового должен узнать?

Прочитаешь узнаешь...
...
Рейтинг: 0 / 0
17.07.2012, 12:32:42
    #37881995
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
NurlanK,

Вам задали вопрос, чтовы абстрактностями отвечаете? Все ссвлки на раьоту с gd и не ьольше, а вам про за запрос к базе данных говарят
...
Рейтинг: 0 / 0
17.07.2012, 13:26:24
    #37882129
NurlanK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
РенатNurlanK,

Вам задали вопрос, чтовы абстрактностями отвечаете? Все ссвлки на раьоту с gd и не ьольше, а вам про за запрос к базе данных говарят

Все эти запросы делаются для того, чтобы сделать мониторинг сервера .т.е. нарисовать динамическую картинку средствами PHP.
Чтобы нарисовать изображение нужно передать каждое число в отдельных кавычках. Строка к нему не подойдет.
...
Рейтинг: 0 / 0
17.07.2012, 13:56:07
    #37882198
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
К кому не подойдет кто?
...
Рейтинг: 0 / 0
17.07.2012, 15:34:25
    #37882396
NurlanK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
Hett,

Скрипт написан на php, если данные будут в строке то изображение получится кривым.
...
Рейтинг: 0 / 0
17.07.2012, 16:54:04
    #37882578
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
...
Рейтинг: 0 / 0
17.07.2012, 17:45:04
    #37882673
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в базу MySql (Сортировка одной строки)
NurlanKесли данные будут в строке то изображение получится кривым.Эт смотря как интерпретировать данные... Мускулю, например, абсолютно все (текст, числа, даты, бинарники) скармливается в виде строки sql-запроса, однако, сие проблем как-то не вызывает.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Запрос в базу MySql (Сортировка одной строки) / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]