Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
ORDERBY DESC时间戳在PHP While循环中对我不起作用_Php_Arrays_Loops_While Loop_Fetch - Fatal编程技术网

ORDERBY DESC时间戳在PHP While循环中对我不起作用

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 *

我有一个while循环,它通过一系列用户和管理员消息进行循环。每条消息都有一个时间戳值。使用sql查询时:

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,那么您应该向我们展示这一点。请记住,我们只能在看到所有相关代码的情况下提供帮助,您遗漏的任何内容对我们来说都是错误。人们要么忽略这个问题,要么猜测,要么对这个问题投否决票,认为它写得/问得不好