Как мне отобразить результаты mysql_fetch_array в обратном порядке?

Честно говоря, я новичок в программировании на PHP / SQL. Я, вероятно, закодировал это неправильно, или «длинный путь». Если честно, я не знаю разницы. Я просто пытаюсь сделать простой веб-чат для веселого проекта. В настоящее время сообщения, отображаемые в комнате, сортируются по отметке времени в порядке убывания. Самые новые сообщения отображаются в верхней части страницы. То, что я хотел бы, чтобы иметь новейшие сообщения внизу страницы. Я показываю только 30 сообщений одновременно. Я не могу понять, как «перевернуть» сообщения так, чтобы самые новые показывались внизу. (Я надеюсь это имеет смысл). Вот что я использовал для отображения сообщений:

$query = "SELECT  * FROM roomdata ORDER BY timestamp DESC LIMIT 30 ";
$result = mysql_query($query);

if ($result) {

while($row= mysql_fetch_array($result)) {

// Check to see if the message was sent by a chatter
if ($row['sender']){
$publicmessage= '<b>['.$row['sender'].']</b>  '.$row['message'];
}else{
// if not, it must have been sent by the server (ie: login message, server announcement, etc)
$publicmessage= $row['message'];
}
echo "$publicmessage <BR>";
}
}

Может кто-то указать мне верное направление?

Если я не включил достаточно информации, я прошу прощения — я новичок во всем этом. Заранее спасибо за ваше время!

2

Решение

Конечно, вы можете поместить все в массив в php и использовать array_reverse() отменить заказ (или взять предметы конца, пока он не опустеет …). Для чистого решения SQL, проверьте этот вопрос.

Альтернативное решение — если ваши требования браузера позволяют это сделать — было бы использовать flexbox для отображения элементов и установить:

.container {
display: flex;
flex-direction: column-reverse;
}

Таким образом, вы можете оставить свой PHP-скрипт как есть; порядок в html будет таким же, но на экране он будет обратным.

Вам также нужно будет обернуть ваши элементы в элементы, но в любом случае список будет более уместным, чем простой текст с переносами строк.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]