Я делаю систему каналов, похожую на то, как работает Facebook, и сейчас я пытаюсь реализовать дублирующую функциональность.
если пользователь пишет одно и то же сообщение =, тогда не отображайте его дубликатом, как это обычно делает PHP по умолчанию, но поднимите его вверх, чтобы пользователи знали другого пользователя, как переписал его
Вот мой запрос
$select_posts_from_groups_query = $db->query("SELECT * FROM spud_groups_posts LEFT JOIN spud_groups_members
ON spud_groups_posts.group_url = spud_groups_members.gurl WHERE member_name='$mybb_username' GROUP BY post_body ORDER BY time_posted DESC" );
как я могу сделать так, чтобы оно само обновлялось как последнее обновление, после того как пользователь повторно продублирует его, чтобы пользователи знали, что кто-то еще поделился им
Спасибо 😉
Три решения
Предполагая, что у вас есть поле обновления времени в вашей записи данных под названием time_updated
Есть несколько вещей, которые вы могли бы сделать:
ORDER BY max(time_posted,time_updated) DESC
Это может вызвать проблемы с NULL
хотя значения
NULL
в time_updated
ORDER BY nvl(time_updated, time_posted) DESC
(Oracle SQL синтаксис nvl()
заменители NULL
в 1-м параметре во 2-м — не знаю, какую БД вы используете)
time_updated
(лучшее решение ИМО). При создании поста (изначально) задайте time_updated = time_created
И использовать
ORDER BY time_updated DESC
Других решений пока нет …