2016-02-24 3 views
-3

Я создаю php-систему обмена сообщениями, основанную на разговорах. И у меня проблема. У меня есть стол с колоннами: id, to, from, msgtext, timesent, viewed, deleted. Я хочу выбрать только один разговор между to и from. Обратите внимание, что если пользователь to может написать сообщение пользователю from. Как выбрать отдельные разговоры?Написание обмена сообщениями php-сообщений MySQL-запрос

Я пытаюсь с этим SQL: ВЫБРАТЬ to, from FROM pms WHERE to = '$ Идентификатор_пользователя' OR from = $ Идентификатор_пользователя группа по to ORDER по идентификатору убыванию LIMIT 50

Но это не работает по-другому , Потому что, если пользователь1 написал сообщение пользователю2, а user2 ответил пользователю1, и снова, если пользователь1 отвечает и отвечает на запросы user2, я вижу как 2 беседы, но это должно быть как один разговор.

Должно быть так: Пользователь отправляет сообщение другому пользователю. Он должен показать в списке разговоров это другое имя пользователя. Если пользователь получает сообщение от другого пользователя, он должен увидеть его имя в списке разговора.

+3

Просьба представить образцы кода. –

+0

Я обновил свой пост :) –

ответ

0

Попробуйте этот код

SELECT `id`, `to`, `from`, `msgtext`, `timesent`, `viewed`, `deleted` FROM table_name 
WHERE `to` = 'username_to' AND `from` = 'username_from' 
LIMIT 1 
OFFSET 0 

Если вы понимаете концепцию позади, вы поймете, что вам нужно играть только с OFFSET номером, чтобы получить следующую запись.

P.S. Ярлык к LIMIT & смещенные линии выше:

LIMIT 0, 1 

Кроме того, когда вы просите что-то на переполнение стека, вы должны показать, что вы пробовали, и спросить, почему не работает, вместо того, чтобы просто просить кода ,