在PHP&;中从下到上读取;SQL
我在用数据库聊天。当我显示消息时,旧消息显示在顶部,新消息显示在底部。我怎样才能让新的信息占据上风呢。我已经尝试了按用户名DESC排序的在PHP&;中从下到上读取;SQL,php,sql,Php,Sql,我在用数据库聊天。当我显示消息时,旧消息显示在顶部,新消息显示在底部。我怎样才能让新的信息占据上风呢。我已经尝试了按用户名DESC排序的方法,但这只能按字母顺序进行 这是我的全部代码 <html> <head> <title>Jetup</title> </head> <body> <form name="chatform" action="<?php echo $_SERVER['PHP_SELF']?
方法,但这只能按字母顺序进行
这是我的全部代码
<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())
由于较新的日期和时间将大于先前的消息,因此较新的日期和时间将显示在消息的顶部。按日期时间排序<代码>插入chatterdata(用户名、消息、创建时间)值(…NOW())
按日期排序,而不是按用户名排序。或者您可以按日期订购,然后按用户名订购orderbydatedesc,Username DESC
我在谷歌上搜索了随机解决方案……非常感谢,为我工作了!:我不能再加上你,只是失去了我的名声,谢谢你的回答!!