arti_djeims
@arti_djeims

Как сделать вывод последних записей из бд?

Есть вывод всех записей из бд

xmlhttp.onload = function () {
    if (xmlhttp.status === 200) {
        var userInfo = JSON.parse(this.responseText);
        console.log(this.responseText);

        var arr = userInfo.results.reverse();
        var text = "";
        for (var i = 0; i < arr.length; i++) {
            text += '<div class="blog-post"><div class="blog-header">'+arr[i].title + '</div><br><img  width="560px;" src="' + arr[i].img + '"><br><div class="blog-text">' + arr[i].text + '</div><div class="blog-share"><a href="http://gamer-by-life.com/share/?title='+arr[i].title + '&text='+arr[i].text + '&img='+arr[i].img + '"><img src="share.png"></a></div><br></div><br>';

        }


как сделать что бы именно последние 10 выводились ?

Я так понимаю что то в этой строке,

for (var i = 0; i < arr.length; i++) {

Я просто не пойму, как это сделать. Нужна ваша помощь!
  • Вопрос задан
  • 269 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Y0Y
Логичнее было бы изменить количество и порядок записей с серверной стороны и не отдавать на клиент бесполезные байты. Иначе, в дальнейшем, загрузка видимых 10 записей будет тянуть за собой еще 1000 ненужных.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
if (arr.length<10) from=10; else from=arr.length;
for (var i = from-10; i < arr.length; i++) {

Вообще, количество записей задаются в запросе к БД...
Ответ написан
vladqwerty
@vladqwerty
Web developer
Попробуйте:
for (var i = arr.length-10; i < arr.length; i++) {
    ...
}

Должно работать если записей 10 или больше.
Если нужна проверка (записей например 6), то :

if(arr.length > 10) {
  for (var i = arr.length-10; i < arr.length; i++) {
      ...
  }
}
else {
  for (var i = 0; i < arr.length; i++) {
      ...
  }
}

И еще, что бы заработало, измените строчку
var arr = userInfo.results.reverse();
на
var arr = userInfo.results;
Иначе результаты полученные в userInfo у вас местами меняются последние с первыми.
С теми данными что вы дали код отработал у меня и вывел записи с 7 по 16.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы