[time] [useragent] [referer] [date]
20:21:50 Opera http://mysite.ru 10-05-2012
20:20:40 Opera http://yandex.ru/yandsearch 10-05-2012
10:21:50 Mozilla http://mysite.ru 10-05-2012
10:20:40 Mozilla http://yandex.ru/yandsearch 10-05-2012
По запросу:
SELECT useragent,referer,time FROM usersinfo WHERE date=$date GROUP BY useragent ORDER BY time DESC
Возвращает:
[useragent] => Opera
[time] => 20:21:50
[referer] => http://mysite.ru
[useragent] => Mozilla
[time] => 10:21:50
[referer] => http://mysite.ru
А нужно самые первые записи по времени для каждого 'useragent':
[useragent] => Opera
[time] => 20:20:40
[referer] => http://yandex.ru/yandsearch
[useragent] => Mozilla
[time] => 10:20:40
[referer] => http://yandex.ru/yandsearch
Параметр DESC в запросе только переворачивает результат
Спустя 23 минуты, 45 секунд (12.05.2012 - 01:24) SoMeOnE написал(а):
Ты не сможешь использовать DESC для сортировки при таком формате даты.
Можно сделать сортировку по id. Вся равно, чем раньше дата, тем и инкремент меньше
Можно сделать сортировку по id. Вся равно, чем раньше дата, тем и инкремент меньше
Спустя 20 минут, 57 секунд (12.05.2012 - 01:45) dadli написал(а):
SELECT useragent,referer,time FROM usersinfo
INNER JOIN
(SELECT MIN(time) AS mt, useragent FROM usersinfo GROUP BY useragent) AS t
ON usersinfo.time = t.mt AND usersinfo.useragent = t.useragent
WHERE date = '".$date."'
Спустя 15 минут, 2 секунды (12.05.2012 - 02:00) i-capitalist написал(а):
to dadli, выдаёт
Column 'useragent' in field list is ambiguous
to SoMeOnE
Попробовал сортировать по id результат тотже, собирает с максимальным id для каждого 'useragent',
DESC влияет, только на то в каком порядке возвращается результат, так:
[useragent] => Opera
[useragent] => Mozilla
или так:
[useragent] => Mozilla
[useragent] => Opera
Column 'useragent' in field list is ambiguous
to SoMeOnE
Попробовал сортировать по id результат тотже, собирает с максимальным id для каждого 'useragent',
DESC влияет, только на то в каком порядке возвращается результат, так:
[useragent] => Opera
[useragent] => Mozilla
или так:
[useragent] => Mozilla
[useragent] => Opera
Спустя 35 минут, 8 секунд (12.05.2012 - 02:35) SoMeOnE написал(а):
Заноси в базу в формате юникс врмени и проблем не будет.
Спустя 6 часов, 22 минуты, 42 секунды (12.05.2012 - 08:58) NitroGenerate написал(а):
Зачем вы используете date отдельно от time ?
Это же лишнее место ...
Если бы было вместе, то можно было бы решить вашу задачу mysql функцией UNIX_TIMESTAMP()
Это же лишнее место ...
Если бы было вместе, то можно было бы решить вашу задачу mysql функцией UNIX_TIMESTAMP()
Спустя 33 минуты, 39 секунд (12.05.2012 - 09:32) Placido написал(а):
SELECT useragent,referer,MIN(time) FROM usersinfo WHERE date=$date GROUP BY useragent
Спустя 38 минут, 31 секунда (12.05.2012 - 10:10) dadli написал(а):
i-capitalist
Sorry, не тестировал, так работает коректно
Sorry, не тестировал, так работает коректно
SELECT usersinfo.useragent, usersinfo.referer ,usersinfo.time FROM usersinfo
INNER JOIN
(SELECT MIN(time) AS mt, useragent FROM usersinfo GROUP BY useragent) AS t
ON usersinfo.time = t.mt AND usersinfo.useragent = t.useragent
WHERE date = '".$date."'
Спустя 36 минут, 38 секунд (12.05.2012 - 10:47) ИНСИ написал(а):
SELECT *
FROM (SELECT * FROM `usersinfo` WHERE `date` = '{$date}' ORDER BY `time` DESC)
GROUP BY `useragent`
Спустя 11 минут, 51 секунда (12.05.2012 - 10:59) i-capitalist написал(а):
to SoMeOnE & NitroGenerate это поможет пройтись по базе в обратном порядке?
to dadli Ошибок не даёт, но результат не возвращается
to Placido на колонку time действует как надо, но к остальному результату никак не привязано, походу надо использовать JOIN как предложил dadli, буду читать как его юзать.
to ИНСИ, прикольно, но выдаёт "Every derived table must have its own alias"
to dadli Ошибок не даёт, но результат не возвращается
to Placido на колонку time действует как надо, но к остальному результату никак не привязано, походу надо использовать JOIN как предложил dadli, буду читать как его юзать.
to ИНСИ, прикольно, но выдаёт "Every derived table must have its own alias"
Спустя 13 минут, 44 секунды (12.05.2012 - 11:12) ИНСИ написал(а):
SELECT *
FROM (SELECT * FROM `usersinfo` WHERE `date` = '{$date}' ORDER BY `time` DESC) AS `tabl1`
GROUP BY `useragent`
Спустя 6 минут, 12 секунд (12.05.2012 - 11:19) dadli написал(а):
i-capitalist
Цитата |
Ошибок не даёт, но результат не возвращается |
а что равно ввашем скрипте $date ? такая дата деиствително есть в таблице
Спустя 6 минут, 13 секунд (12.05.2012 - 11:25) i-capitalist написал(а):
to dadli
$date, да есть и срабатывает на других запросах, так что не думаю что проблема в этом
$date, да есть и срабатывает на других запросах, так что не думаю что проблема в этом
Спустя 2 минуты, 12 секунд (12.05.2012 - 11:27) dadli написал(а):
i-capitalist
покажите как ви собираете виведит резултат
покажите как ви собираете виведит резултат
Спустя 8 минут, 40 секунд (12.05.2012 - 11:36) i-capitalist написал(а):
to dadli
function read_usersinfo($date){
$sql_usersinfo = "
SELECT *
FROM (SELECT useragent,ip,referer,time FROM usersinfo WHERE date = {$date} ORDER BY time DESC)
GROUP BY useragent" ;
if(!$date){
die("error");
}
$res = $this->sql($sql_usersinfo) ;
while($row = mysql_fetch_array($res)){
$data[] = $row;
}
return $data;
}
$counter = read_usersinfo('2012-04-07') ;
echo "<pre>" ;
print_r($counter);
echo "</pre>" ;
Спустя 2 минуты, 13 секунд (12.05.2012 - 11:38) i-capitalist написал(а):
to ИНСИ, Ошибок не даёт, но результат не возвращается
Спустя 2 минуты, 47 секунд (12.05.2012 - 11:41) NitroGenerate написал(а):
Если объедините эти 2 поля в одно, то сможете без проблем сортировать в любом порядке
вытаскивать все записи за определенный период.
Одним словом это куда удобнее
вытаскивать все записи за определенный период.
Одним словом это куда удобнее
Спустя 3 минуты, 35 секунд (12.05.2012 - 11:44) dadli написал(а):
i-capitalist
ок, а сеичас скажите в вашем таблице, в поле date, в каком формате сохраняете время ?
в таком
10-05-2012
или в таком
2012-05-10
ок, а сеичас скажите в вашем таблице, в поле date, в каком формате сохраняете время ?
в таком
10-05-2012
или в таком
2012-05-10
Спустя 4 минуты, 19 секунд (12.05.2012 - 11:49) i-capitalist написал(а):
to dadli, список 'date' берётся из той-же таблицы, выводиться пользователю, тот выбирает и он возвращается уже за деталями для данной даты
Формат:
2012-05-10
to NitroGenerate, все записи за указанный период я могу спокойно получить сортируя в любом порядке и с помощью 'time', но мне нужны только самые первые с уникальным 'useragent'
ИНСИ спасибо всё работает как надо и выглядит не сложно)
Формат:
2012-05-10
to NitroGenerate, все записи за указанный период я могу спокойно получить сортируя в любом порядке и с помощью 'time', но мне нужны только самые первые с уникальным 'useragent'
ИНСИ спасибо всё работает как надо и выглядит не сложно)