Как вывести 4 последних значения из бд?

На сайте есть регистрация+авторизация и определенный функционал, который логируется в таблицу 'history'.
Регистрация, подтверждение почты и все-все манипуляции.
Допустим, имеется 100 пользователей, которые совершали разные действия. Необходимо вывести 4 последних значения в хронологическом порядке(от старого к новому) для определенного пользователя
  • Вопрос задан
  • 303 просмотра
Решения вопроса 1
Folour
@Folour
В MySQLi функции типа mysqli_fetch_* возвращают только одну строку из бд. Их нужно обходить циклом.
while($row = mysqli_fetch_assoc($result)) {
    var_dump($row);
}


т.е. в Вашем случае нужно так
$i = 0;
$login = mysqli_real_escape_string($_COOKIE['login']);
$queryHistory = mysqli_query($lnk, "SELECT * FROM `history` WHERE `login` = '$login' ORDER BY `id` DESC LIMIT 4");
while($row = mysqli_fetch_assoc($queryHistory)) {
    echo "Заголовок #".(++$i).": ".$historyData['message']."<br>";
}


//так делать нельзя WHERE `login` = ".$_COOKIE['login']."
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@D3lphi
SELECT `field1`, `field2` FROM `history` WHERE `user_id` = 5 ORDER BY `created_at` ASC LIMIT 4

created_at - метка времени, когда был зарегистрирован пользователь. Если нет других вариантов, можете использовать id вместо этой метки.
Ответ написан
@Akellacom
CTO
Вы приложите пример кода и вам помогут
Ответ написан
Комментировать
@borgore Автор вопроса
php: https://pastebin.com/xnr4PPnk

Скрины результата php:
spoiler
bd0728f15a1942f5b0052d215641e1d3.png

Скрины результата pma:
spoiler
833f185412c349119611f988130e1ffb.png

Пы.сы, ориентируюсь только на результаты print_r
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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