Читайте снизу вверх в PHP и SQL

Я делаю чат, который использует базы данных. Когда я показываю сообщение, старые сообщения появляются сверху, а новые сообщения появляются внизу. Как я могу это сделать, чтобы новые сообщения попали на первое место. Я уже пробовал ORDER BY Username DESC но это только заставило его пойти в алфавитном порядке.

Это мой полный код

 <html> <head> <title>Jetup</title> </head> <body> <form name="chatform" action="<?php echo $_SERVER['PHP_SELF']?>" method="post"> <input type="text" name="chatuser"/> <input type="text" name="chatinput"/> <input type="image" name="send" value="Verzenden"/> <br/> <?php $connection = mysql_connect("localhost","root","usbw") or die ("Kon geen verbinding maken"); mysql_select_db("chat") or die("Kan geen database selecteren"); if(isset($_POST['chatinput']) && isset($_POST['chatuser'])){ $input = $_POST['chatinput']; $user = $_POST['chatuser']; $query = "INSERT INTO chatterdata (Username, Message) VALUES ('".$user."', '" .$input."')"; mysql_query($query) or die(mysql_error()); } $display = mysql_query("SELECT * FROM chatterdata ORDER BY Username DESC, Message DESC"); while($row = mysql_fetch_array($display)){ echo($row['Username'] . " : " .$row['Message'] . "<br/>"); } ?> </form> </body> 

Вы должны добавить поле метки времени в таблицу chatterdata.

то вы можете заказать по этому полю

 `added` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 

Это поле примера, которое будет автоматически обновляться при добавлении нового сообщения, поэтому вам не нужно вставлять что-либо еще в базу данных при создании сообщения.

то вы можете выбрать так:

 SELECT * FROM chatterdata ORDER BY added DESC 

Я бы определенно посмотрел на использование PDO или, по крайней мере, на mysql_real_escape_string, прежде чем вставлять оценки в базу данных, так как при этом есть огромные последствия для безопасности 🙂

Вы можете сделать эту работу, создав поле SentDate и упорядочив его по полю SentDate .

 INSERT INTO chatterdata(Username, Message, SentDate) VALUES ($user, $message, NOW()) 

Поскольку более новая дата и время будут больше, чем предыдущее сообщение, более новая будет отображаться сверху.