Javascript mysqli_如何获取所有行的顺序?

Javascript mysqli_如何获取所有行的顺序?,javascript,php,mysql,Javascript,Php,Mysql,我正在构建一个站点,它从mysql数据库中保存的表中获取信息。我有一个.php文件,它采用如下行数组: $titles=mysqli\u fetch\u all($tresult) 然后,在另一个文件中,我使用下面的语句将其设置为javascript中的数组: var-markertilearray= 然后我用以下方法循环遍历该数组: for (var i = 0; i < markerTitleArray.length; i++){ for (var j = 0;

我正在构建一个站点,它从mysql数据库中保存的表中获取信息。我有一个
.php
文件,它采用如下行数组:
$titles=mysqli\u fetch\u all($tresult)

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

var-markertilearray=

然后我用以下方法循环遍历该数组:

for (var i = 0; i < markerTitleArray.length; i++){
            for (var j = 0; j < markerTitleArray[i].length; j++){
                console.log(markerTitleArray[i][0]);
            }
}
for(变量i=0;i
但是现在,标题的顺序不同了。我觉得问题在于我不完全理解mysqli\u fetch\u fall()
是如何订购的

任何帮助都将不胜感激

mysqli\u fetch\u all()
以mysql相同的顺序返回您的行,也就是说它本身不进行排序。不要被你在结果中看到的任何感知顺序所愚弄——如果没有ORDERBY子句,你的结果顺序是不可预测的。不要把这与顺序是随机的混淆——您可能会看到返回的记录与插入的顺序大致相同,但这并不强制执行


如果您关心顺序,则必须使用order BY:

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

$query="SELECT a,b FROM myCollection ORDER BY a";
$result=mysqli_query($connexion,$query);
此顺序将影响以下程序返回的数组:

mysqli_fetch_all($result,MYSQLI_ASSOC);

无论如何,
mysqli_fetch_all()
不是处理数据的好方法(从性能的角度来看,因为它在一个庞大的数组中获取所有数据,需要处理和处理,特别是在应用程序不是小的情况下。)

mysqli_fetch_all()
不订购任何东西。您的查询的
orderby
子句没有。由于缺少按
排序的
,查询的排序顺序基本上是未定义的。我不是说排序。我的意思是,如果我有一行只有“1,2,3”,它只是打印出“1,2,3”?你是指列在结果集中出现的顺序?这是由它们在
选择中的位置定义的<代码>选择a、b、c
来定义顺序,而不是
选择*
一点也不。我的意思是,如果我有多行标题,比如“a,b,c”
是否从某个表中选择标题
给我“a,b,c”?它会按照所有行在数据库中出现的顺序选择所有行的标题。虽然这并没有完全回答我想要回答的问题,但它回答了我提出的问题并引导我找到了解决方案。谢谢我想补充一点,MySQL会很乐意对您的数据进行各种疯狂的重新排序,如果它能使复杂语句中的连接变得更容易,如果MySQL认为Desc索引比ASC索引更好,那么可以发现返回的行的顺序与插入的顺序相反。@FlaqueDeau:你想知道另一个问题的答案吗?@Bossie我想知道为什么在我
console.log()时,我的标题的顺序不一样
当我在phpmyadmin上的MAMP表上查看它们时,它们就像我看到它们一样。他们在某个地方搞混了,我不知道在哪里。@scragar这是一个很好的观点。我认为许多SQL新手看到一个简单的SELECT*from表的结果时,插入的顺序与插入的顺序相同,并假设这是他们可以依赖的,但索引和联接肯定会显著改变顺序