AlexanderShapoval
@AlexanderShapoval
PHP maker

Как добавить поле порядкового номера записи в запросе SQL?

Есть запрос:
$users = DB::table('users')
->whereBetween('votes', [20, 100])
->orderBy('votes', 'desc')
->paginate(10);


Он возвращает:
4
7
1
5
15
и ид.

Как добавить логическое поле 'rank' и получить:
1 - 4
2 - 7
3 - 1
4 - 5
5 - 15

При этом при заходе на вторую страницу - нужно выводить 'rank' от 10
  • Вопрос задан
  • 465 просмотров
Пригласить эксперта
Ответы на вопрос 3
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
$i = ($page_num*10)-1;

foreach(){
$i++;
echo $i;
}


Ну или https://laravel.com/docs/5.3/pagination#paginator-...
Ответ написан
Комментировать
@boodda
При таком запросе он будет вам возвращать все колонки. Следовательно если у вас в таблице есть поле ID то вы можете его выводить как
foreach($users as $user){
    echo $user->id;
}

или в шаблоне
@foreach($users as $user)
    {{ $user->id }}
@endforeach


если вам нужны только 2 колонки из запроса то добавьте select так
$users = DB::table('users')
->select('id', 'rank')
->whereBetween('votes', [20, 100])
->orderBy('votes', 'desc')
->paginate(10);
Ответ написан
Комментировать
@RomanTrakhtenberg
Пока не волшебник, только учусь.
$i = 1;
    if ($data->currentPage() > 1){
        $i = (30 * ($data->currentPage()-1))+1;
    }

Число указанное в ->paginate(30).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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