php - MySql INNER JOIN 结果为 "weird"数组

标签 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

该值每行增加 1。它就在表 AAA 和 BBB 之间,没有任何关联键。

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

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

问题: 这些值(value)观从何而来?我怎样才能摆脱它们?

最佳答案

将代码更改为:

mysqli_fetch_all($mysqli_result, MYSQLI_ASSOC);

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

参见MySQLi predefined constants .

关于php - MySql INNER JOIN 结果为 "weird"数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27277481/

相关文章:

php - 400 错误请求响应 : KeyConditionExpression parameter must be specified in the request

php - 当为 php yiiframework 上传新图像时从文件夹中删除图像

php - Laravel SQL 按 WHERE IN Group By 更新行

php - 我的 jQuery .ajax 脚本没有将 html 放在 div 中

php - 运行第二个循环时取消设置数据

php - imagecopyresampled 不工作不知道为什么

mysql - 更新记录(如果存在);否则插入

mysql - 使用自连接的 SQL 笛卡尔连接/交叉连接,不带Where子句/谓词

MySQL 在多表查询中检索最低值

sql - Oracle - 仅从列中选择最大值