是否可以在选择后颠倒msyqli_query的顺序?
所以我需要在我的查询中排序日期DESC,因为我抓住了5个最近的结果。是否可以在选择后颠倒msyqli_query的顺序?
$commentquery=mysqli_query($con,"SELECT * FROM user_comments WHERE
content_id='$storyid' ORDER BY date DESC LIMIT 5 ");
while ($comment=mysqli_fetch_array($commentquery)):
然而,当我有我的结果,我想通过最古老的扭转顺序和循环到最新我5 results.I的尝试放置mysqli_fetch_Array($ commentquery)在变量和操作的方式的阵列反向,但似乎没有办法做到这一点。
进行查询,查询当前选定记录的结果。
SELECT * FROM
(SELECT *
FROM user_comments
WHERE content_id='$storyid'
ORDER BY date DESC LIMIT 5) last_five_comments
ORDER BY date ASC
谢谢每个人都为你的答案 - 但这是最简单的和完美的工作。只需在子查询中选择,然后按我需要的方式排序子查询结果。简单!!!谢谢!! –
虽然我不明白为什么你不只是颠倒你的查询的排序顺序,那里有一个方法。
$commentquery=mysqli_query($con,"SELECT * FROM user_comments WHERE content_id='$storyid' ORDER BY date DESC LIMIT 5 ");
$count = mysqli_num_rows($commentquery);
while ($count > 0) {
$count--;
mysqli_data_seek($commentquery, $count);
$comment = mysqli_fetch_array($commentquery):
// do things with $comment
}
颠倒查询的排序顺序并获取5 *最后*项目并不像看起来那么直截了当:-) – jeroen
我刚刚重读了这个问题,并且您是对的:) – rickdenhaan
你可以转储数组作为示例 – Krish
你应该发布你已经尝试过的东西;获取所有行并执行'array_reverse()'将肯定能解决您的问题,就像在循环中弹出数组末尾的项目一样。 – jeroen
当然,您可以将_all_结果条目读入内存,然后以任何您喜欢的方式遍历它们,而不仅仅是向上和向下。但是这种方法不会显着扩展,因为你必须在内存中保存_all_结果。为了能够以扩展更大的结果集的方式处理结果条目,您需要将结果保留在sql服务器中,并且一次只提取和处理一个条目。这意味着你需要改变sql查询定义顺序的方式。 – arkascha