Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 对从数据库检索到的信息进行排序_Php_Mysql_Timestamp_Unix Timestamp - Fatal编程技术网

Php 对从数据库检索到的信息进行排序

Php 对从数据库检索到的信息进行排序,php,mysql,timestamp,unix-timestamp,Php,Mysql,Timestamp,Unix Timestamp,我通过使用嵌套的while循环从数据库中检索信息来创建提要(有更好的方法吗?) 我有一个名为users的表,其中包括所有名称。另一个表称为messages,其中包含消息、发布它的用户和时间戳 $userQuery = mysql_query("SELECT name FROM users"); while ($user = mysql_fetch_array($userQuery, MYSQL_NUM)) { $messageQuery = mysql_query("SELECT mes

我通过使用嵌套的while循环从数据库中检索信息来创建提要(有更好的方法吗?)

我有一个名为users的表,其中包括所有名称。另一个表称为messages,其中包含消息、发布它的用户和时间戳

$userQuery = mysql_query("SELECT name FROM users");
while ($user = mysql_fetch_array($userQuery, MYSQL_NUM)) {
    $messageQuery = mysql_query("SELECT message FROM messages WHERE user = $user ORDER BY timestamp DESC");
    while ($message = mysql_fetch_array($messageQuery, MYSQL_NUM)) {
        echo "$user[0]: $message[0]";
    }
}
问题是它没有按时间戳排序,我也不知道它是如何排序的。我尝试了使用UNIX时间戳的timestamp、datetime和int类型


编辑:我应该补充一点,用户和消息匹配得很好,只是排序不起作用。

我猜您的用户或多或少都是随机排序的,“在”一个用户中排序是可以的

使用:


这将为您提供一个有序的结果(至少如果您有一个名为messages.timestamp的列,请检查名称;-)。和一个查询中的所有内容…

对于该查询,您可以创建一个联接

SELECT u.name as name, m.message as message
FROM users u inner join messages m
on u.user = m.user
order by 
m.timestamp DESC

至于第二部分,我看不出你的罐头有什么问题。也许你可以发布一些数据样本,看看是否有什么不同。

;)你更快了,删除了我的答案
name.u
message.m
你确定吗?可能是
u.name
m.message
?哈哈。。是 啊我第二部分是对的,第一部分是错的。我不应该在半睡半醒的时候回答问题:)谢谢你指出这一点。
SELECT u.name as name, m.message as message
FROM users u inner join messages m
on u.user = m.user
order by 
m.timestamp DESC