- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем привет. Никак не могу разобраться в двух этих distinct и count. В общем, есть таблица с 5 столбцами id(id сообщения), poluchatel, otpravitel, text и data. Понятно, что в получателе и отправителе могут повторяться ники, если пользователи отправили больше одного сообщения друг другу. Так вот, мне нужно вывести на странице: пользователей, последнее сообщение(text) и дату этого сообщение, с которыми ведет диалог авторизированный пользователь. Пробовал так:
и потом пихал это в цикл, но выводилось только последнее сообщение, а не то что нужно. Помогите разобраться в этом. СпасибоSELECT *, COUNT(*) as count FROM (SELECT * FROM messages WHERE poluchatel='$login' OR otpravitel='$login' ORDER BY id DESC) as m GROUP BY poluchatel
SELECT *, COUNT(*) as count FROM (SELECT * FROM messages WHERE poluchatel='$login' OR otpravitel='$login' ORDER BY id DESC) as m GROUP BY poluchatel
так он выводит и получателя и отправителя, то есть он считает их как бы не за один диалон. Например, может быть зарегистрировано 2 пользователя, но диалог будет между ними один, и вот нужно чтобы выводилось последнее сообщение из диалога между этими пользователями.
Для этого вообщето создается message_map где хранится ид диалогов с кем ведет этот пользователь, либо хотябы ид диалога иметь в таблице по которому возможно их группировать. Иначе каким образом вы определите что это один и тот же диалог?
а как можно id диалога сделать? то есть, чтобы была проверка если появились новый ник либо в получателе, либо в отправителе, то id диалога увеличивался на один? я хотел сначала так сделать, но мне сказали, что можно как то через count, но видимо не до конца поняли.
Представьте что диалог это та же тема на форуме. У темы есть свой ид, у сообщений свой. Когда пользователь создает новый диалог он открывает новую тему. Когда отвечает, он отвечает в теме. Вы вообще каким образом идентифицируете конкретный диалог между двумя пользователями?
Представьте что диалог это та же тема на форуме. У темы есть свой ид, у сообщений свой. Когда пользователь создает новый диалог он открывает новую тему. Когда отвечает, он отвечает в теме. Вы вообще каким образом идентифицируете конкретный диалог между двумя пользователями?
в том то и дело, что пока никак не идентифицирую) я принцип понял, но я не знаю как в mysql проверка полей делается, может подскажите примером
в том то и дело, что пока никак не идентифицирую)
Тогда, чтобы не изобретать велосипеды, возьмите любой форум или кмс в которой есть личные сообщения и смотрите какая там используется структура для хранения данных. По ней увидите каким примерно будет дальнейший код этой реализации.
В общем, создал таблицу диалогов, куда записывается два ника(которых еще не было) id и их последнее сообщение. Вроде бы работает. Забавно, что такое простое решение до меня пару дней доходило)