ORDERBY DESC时间戳在PHP While循环中对我不起作用
我有一个while循环,它通过一系列用户和管理员消息进行循环。每条消息都有一个时间戳值。使用sql查询时:ORDERBY DESC时间戳在PHP While循环中对我不起作用,php,arrays,loops,while-loop,fetch,Php,Arrays,Loops,While Loop,Fetch,我有一个while循环,它通过一系列用户和管理员消息进行循环。每条消息都有一个时间戳值。使用sql查询时: SELECT * FROM Messages WHERE user_id=.... ORDER BY message_timestamp DESC 当然,这会首先显示最新的消息。但是,当我在PHP的while循环中使用相同的sql查询来获取消息时: $select_message = ($con, "SELECT *
SELECT * FROM Messages
WHERE user_id=....
ORDER BY message_timestamp DESC
当然,这会首先显示最新的消息。但是,当我在PHP的while循环中使用相同的sql查询来获取消息时:
$select_message = ($con, "SELECT *
FROM Messages
WHERE user_id='....'
ORDER BY message_timestamp DESC");
while($fetch_message = mysqli_fetch_array($select_message))
它们以ASC顺序显示,即使我有“按描述排序”。。。我还尝试了ASC的命令,看看会发生什么,但没有改变
这就是我在while循环中的内容
if($fetch_message['message_author'] == 'aut1') {
echo "aut1";
} elseif($fetch_message['message_author'] == 'aut2') {
echo "aut2";
}
}
phpMyAdmin模式。Timestamp是值类型Timestamp
SELECT `message_id`,`message_author`,`user_id`,`consumer_email`,`message_content`,`admin_id`,`message_timestamp` FROM Messages;
我已经在这里浏览了一些用户问题,但似乎对大多数人都有用。。您能帮忙吗?我想您在获取结果之前忘记执行查询了。如果您签出,您可以看到应该首先执行查询,然后获取结果
$query=“SELECT*FROM Messages,其中user_id=”..“ORDER BY message_timestamp DESC”;
$result=mysqli\u查询($con,$query);
而($row=mysqli\u fetch\u数组($result,mysqli\u ASSOC)){
//处理数据
}
在这里,我使用的是
MYSQLI\u ASSOC
fetching方法,但您也可以使用MYSQLI\u NUM
或MYSQLI\u两者
也许您应该向我们展示while循环中的情况,因为如果问题与查询相关,Order By也不太可能仅针对您失败,向我们展示任何相关表的模式是很好的。您的问题中没有足够的信息来帮助您找到bug。由于不知道bug隐藏在哪里,所以很难说我们需要找到它。抱歉。要想在实时环境中从PHP中获取错误,请将这4行添加到要调试ini\u集(“显示错误”,1)的任何基于MYSQLI\u
的脚本的顶部;ini_集(“日志错误”,1);错误报告(E_全部);mysqli_报告(mysqli_报告错误| mysqli_报告严格)代码>。这将迫使任何MYSQLI\uuuu
错误生成一个异常,您可以在浏览器上看到该异常以及正常的PHP错误。@RiggsFolly谢谢您。我确实在while循环之前执行了查询,就像您另外演示的一样,但它仍然没有顺序。Mickey,那么您应该向我们展示这一点。请记住,我们只能在看到所有相关代码的情况下提供帮助,您遗漏的任何内容对我们来说都是错误。人们要么忽略这个问题,要么猜测,要么对这个问题投否决票,认为它写得/问得不好