MySql INNER JOIN导致"怪异"排列

时间:2014-12-03 17:02:38

标签: 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.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之间,没有任何关联键。

在每一行的最后,还有一个更令人恼火的值,表示来自其他一列的日期时间:

[43] => 8
[NA_Eng] => 8
[44] => 4
[NA_Fra] => 4
[45] => 2014-03-31 11:47:45 <<<<<< ???

问题: 这些价值来自哪里?我怎么能摆脱它们?

1 个答案:

答案 0 :(得分:0)

将您的代码更改为:

mysqli_fetch_all($mysqli_result, MYSQLI_ASSOC);

这样,您就不会在结果中获得数字键。

请参阅MySQLi predefined constants