mysqli_fetch_all如何对行进行排序?

时间:2014-05-12 16:48:31

标签: javascript php mysql

我正在构建一个从保存在mysql数据库中的表中获取信息的站点。我有一个.php文件,它接受一行数组,如下所示: $titles = mysqli_fetch_all($tresult);

然后,在另一个文件中,我使用以下语句将其设置为javascript中的数组:

var markerTitleArray = <?php echo json_encode($titles); ?>;

然后我用:

循环遍历该数组
for (var i = 0; i < markerTitleArray.length; i++){
            for (var j = 0; j < markerTitleArray[i].length; j++){
                console.log(markerTitleArray[i][0]);
            }
}

但是现在,标题的顺序不同。我觉得问题是我不完全理解mysqli_fetch_fall()如何命令。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:6)

mysqli_fetch_all()以与mysql相同的顺序返回你的行,也就是说它本身没有排序。不要被你在结果中看到的任何感知顺序所迷惑 - 没有ORDER BY子句,你的结果排序是不可预测的。不要将此与随机的顺序混淆 - 您可能会看到返回的记录大致与它们插入的顺序相同,但是没有强制执行。

如果您关心订单,则必须使用ORDER BY:http://dev.mysql.com/doc/refman/5.0/en/sorting-rows.html

答案 1 :(得分:2)

订单完全取决于查询字段的顺序

$query="SELECT a,b FROM myCollection ORDER BY a";
$result=mysqli_query($connexion,$query);

此订单将影响返回的数组:

mysqli_fetch_all($result,MYSQLI_ASSOC);

无论如何,mysqli_fetch_all()并不是一种处理数据的好方法(从性能的角度来看,因为它会抓取单个巨大阵列中的所有数据来处理和处理,特别是如果你的申请不是一个小的。)