Помощник
|
Помогите с запросом |
happyhand
|
Сообщение
#1
|
||
|
|
||
|
|||
Mulder_hb |
6.11.2010, 1:46;
Ответить: Mulder_hb
Сообщение
#2
|
|
Не зная стурктуры таблицы очень сложно создавать запросы. Но общий запрос будет наподобие такого:
SELECT `ip`, max(`date`) as `date`, `id` FROM `table` GROUP BY `id` ORDER BY `date` DESC;
|
|
|
happyhand
|
Сообщение
#3
|
|
Структура такая:id,ip,cookie,datefull,browser,date.
Или имеется в виду что-то другое? datefull - это полная дата момента посещения (date('Y-m-d-H-i-s')), date - просто дата (date('Y-m-d')), по ней осуществляется вывод по определённой дате. На моей статистической странице идёт вывод посещений по какой-то определённой дате по такому запросу: [php]SELECT * FROM guests WHERE date='$z' ORDER by datefull DESC[/php], где $z - это нужная дата. Так вот при таком подходе мне выдаётся всё содержимое базы за какую-то дату. Есть посетители, которые заходят по нескольку раз, это видно по повторяющимся кукам. Нужно, чтобы повторяющиеся посетители объединялись в одного. |
|
|
zidan |
6.11.2010, 12:08;
Ответить: zidan
Сообщение
#4
|
|
Может, в эту сторону посмотреть http://www.mysql.ru/docs/man/Group_by_functions.html? Mulder, правильно подметил - GROUP BY. Хотя, при возможности, я бы в БД не записывал одинаковых пользователей.
|
|
|
Mulder_hb |
6.11.2010, 19:03;
Ответить: Mulder_hb
Сообщение
#5
|
|
sergey-g, покажите структуру таблицы. Наберите в консоли мускула
SHOW CREATE TABLE `tbl_name`\G;
|
|
|
happyhand
|
Сообщение
#6
|
|
CREATE TABLE `guests` (
`id` int(10) NOT NULL auto_increment, `ip` varchar(100) NOT NULL, `cookie` varchar(255) NOT NULL, `datefull` datetime NOT NULL, `browser` varchar(100) NOT NULL, `pay` varchar(20) NOT NULL, `session` varchar(100) NOT NULL, `date` date NOT NULL, `machine` varchar(100) NOT NULL, `query` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=231 DEFAULT CHARSET=cp1251 |
|
|
Mulder_hb |
7.11.2010, 13:59;
Ответить: Mulder_hb
Сообщение
#7
|
|
Ну в общем, как я и писал выше. Делать group by. Чтобы вывести посетителя в одном экземпляре, вам надо определить время его последнего захода max(`datefull`), а затем вывести остальные данные соответствующие этому времени. Т.к. у меня негде отладить запрос, то отладка остается вам.
SELECT `id`,`ip`, `cookie`,`browser`, `pay`,
`session`,`machine`,`query`, max(`datefull`) as `datefull` FROM `guests` WHERE `date` = $z GROUP BY `id` ORDER BY `datefull` DESC; |
|
|
happyhand
|
Сообщение
#8
|
|
На скрине результат.
Как и что отлаживать? |
|
|
Mulder_hb |
7.11.2010, 19:45;
Ответить: Mulder_hb
Сообщение
#9
|
|
sql-запросы отлаживаются в консоли sql-сервера. Не можете сами, дайте мне доступ к бд или слейте эту таблицу в дамп и дайте мне.
|
|
|
happyhand
|
Сообщение
#10
|
|
|
Ладно, бог с ним, пусть уж будет как есть, не думал, что будут такие сложности, хотел просто сделать для своего удобства. Спасибо за внимание.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Помогите вспомнить рекламного бота Телеграм для обмена рекламой | 0 | Mixatraider | 725 | 21.2.2024, 23:42 автор: Mixatraider |
|
Помогите рещить проблему с монитором. Почему низкое разрешение при подключении монитора через displayport? |
0 | Levels | 1702 | 11.12.2020, 0:48 автор: Levels |
|
Помогите кто нибудь получить партнерку Росбанк! | 7 | heisenberg_mw | 2341 | 7.8.2020, 9:28 автор: heisenberg_mw |
|
Помогите найти тему пожалуйста | 7 | virtas | 12503 | 24.7.2020, 17:02 автор: -JamesSmips- |
|
Помогите с поиском доноров | 3 | tehno_music | 3354 | 4.11.2019, 17:15 автор: goblin78 |
Текстовая версия | Сейчас: 20.4.2024, 17:34 |