Php MySql内部连接导致“怪异”数组
我不太擅长高级MySql,尝试连接多个表并将结果放入单个PHP数组Php MySql内部连接导致“怪异”数组,php,mysql,join,Php,Mysql,Join,我不太擅长高级MySql,尝试连接多个表并将结果放入单个PHP数组 SELECT * FROM AAA INNER JOIN BBB ON AAA.Aufg_id = BBB.Aufg_id INNER JOIN CCC ON AAA.SchuelerNr = CCC.schuelernr AND AAA.Schulnummer = CCC.schulnummer AND AAA.Klasse = CCC.klasse WHERE AAA.Schu
SELECT * FROM AAA
INNER JOIN BBB ON AAA.Aufg_id = BBB.Aufg_id
INNER JOIN CCC ON AAA.SchuelerNr = CCC.schuelernr AND AAA.Schulnummer = CCC.schulnummer AND AAA.Klasse = CCC.klasse
WHERE AAA.Schulnummer='$x' AND AAA.Klasse='$y' AND AAA.SchuelerNr='$z'
结果被放入一个列表中
mysqli_fetch_all($mysqli_result, MYSQLI_BOTH);
因此,我能够通过循环迭代获得关联值或数字值。
除了两个本不应该存在的价值观外,几乎所有东西都运转良好:
[0] => DEMO11
[sn] => DEMO11
[1] => 2014-03-31 10:05:14
[zt] => 2014-03-31 11:47:45
[2] => 8a_D1
[kl] => 8a_D1
[3] => 4
[snr] => 4
[4] => 1
[Aufg_id] => 1
[5] => f
[erg] => f
[6] => 1 <<<< WHERE DOES THIS COME FROM?
[7] => 1
[th] => 1
[8] => Deu
[fac] => Deu
该值每行增加一个。它就在AAA和BBB表之间,没有任何关联键
在每一行的末尾,还有一个更令人恼火的值,表示来自其他列之一的datetime:
[43] => 8
[NA_Eng] => 8
[44] => 4
[NA_Fra] => 4
[45] => 2014-03-31 11:47:45 <<<<<< ???
问题:
这些价值观从何而来?如何摆脱它们???将您的代码更改为:
mysqli_fetch_all($mysqli_result, MYSQLI_ASSOC);
这样,您就不会在结果中获得数字键
请参阅。在SELECT中命名列,而不是使用*。我们必须了解更多有关架构的信息,才能告诉您该值的来源,尽管我同意@Sebas的观点,即您应该指定要返回的列,而不是使用SELECT*当然,我可以通过指定列来限制输出,但这并不能从一开始就解决问题。我认为这些值源自我犯的一个可怕的sql错误@布莱恩:恐怕我不能把更多的数据库结构放在网上,因为它是一个真实项目的一部分:看起来OP想要字符串和数字键。