goodwin74
@goodwin74

Подгрузка контента и обновление UID без insert?

Есть скрипт PHP где выводятся данные из таблицы MySQL. Есть два столбика uid (уникальный ключ) и timepub (время публикации). Вывод идёт c ORDER сначала по timepub потом по uid (ввиду того что иногда timepub обновляется). Раньше было не критично, так как выводилось c использованием постраничной навигации, теперь требуется сделать подгрузку ajax с кнопкой "Показать еще". Тут встал вопрос, если делать подгрузку по последнему uid (select * from `table` where `uid` > Х limit 30), то не получается ввиду того, что uid идут не по порядку, а закладывать в условие timepub не очень хорошее решение, так как могут быть записи с таким же timestamp. Получается первое что пришло на ум, это при обновлении timepub обновлять и uid.
Вопрос собственно по обновлению и по собственно всей ситуации. Возможно ли как то обновить uid при помощи одного запроса в mysql, вместо удаление старой записи и добавления новой? И вообще возможно я не туда думаю, и есть какие то другие решения запроса для подгрузки контента?
Буду благодарен за любую подсказку и помощь!
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ответы на вопрос 2
kotomyava
@kotomyava
Системный администратор
Вам нужно оба параметра limit в запросе использовать просто(смещение и количество), и увеличивать смещение каждый запрос), и не делать никаких условий по uid или timepub.
Собственно, ничего не отличается от постраничной навигации, в плане запросов, на самом-то деле. Меняется только форма вывода на фронтэнде...
Ответ написан
goodwin74
@goodwin74 Автор вопроса
Решение нашёл на другом ресурсе. Если кому понадобится.

Запоминаем у последней записи выведенной на экран два поля uid(далее uX) и время публикации(далее tX)

select * from `table` where timepub <= tX and concat(timepub, lpad(uid, 12, '0')) < concat(tX, lpad(uX, 12, '0')) order by timepub DESC,uid DESC limit 30
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы