我正在构建一个从保存在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()
如何命令。
非常感谢任何帮助!
答案 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()
并不是一种处理数据的好方法(从性能的角度来看,因为它会抓取单个巨大阵列中的所有数据来处理和处理,特别是如果你的申请不是一个小的。)