Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP(或jQuery,如果需要):将其他表中的相关MySQL记录输出为JSON?_Php_Mysql_Json - Fatal编程技术网

PHP(或jQuery,如果需要):将其他表中的相关MySQL记录输出为JSON?

PHP(或jQuery,如果需要):将其他表中的相关MySQL记录输出为JSON?,php,mysql,json,Php,Mysql,Json,我有两张桌子: 表1: Make Model 1 ID Model 2 ID Model 3 ID ---- ---------- ---------- ---------- Ford 1 4 7 Chevrolet 2 3 5 Dodge 6 8

我有两张桌子:

表1:

Make       Model 1 ID      Model 2 ID      Model 3 ID
----       ----------      ----------      ----------
Ford       1               4               7
Chevrolet  2               3               5
Dodge      6               8               9
表2:

ID         Model            Engine
----       -----            ------
1          F-150            Triton V8
2          Silverado        Vortec V8
3          Corvette         LS9 V8
4          Fusion           Duratec I4
5          Camaro           LSA V8
6          Ram              Hemi V8
7          Mustang          Modular V8
8          Grand Caravan    Pentastar V6
9          Challenger       Hemi V8
我希望将链接的数据输出(你是这么说的吗?我对编程术语有点不了解。对不起。)作为使用PHP的JSON,这样输出看起来像这样(或者如果我的JSON语法错误,则非常类似):

问题是,如何使用PHP实现这一点?感谢您花时间阅读这篇相当长的文章,并提前感谢您尝试提出解决方案


如果您想建议使用jQuery的解决方案,也可以这样做。

您的数据库是错误的。请尝试以下结构:

MakeID Make
------ ----
1      Ford
2      Chevrolet
3      Dodge

ModelID MakeID Model          Engine
------- ------ -------------- ------
1       1      F-150          Triton V8
2       2      Silverado      Vortec V8
3       2      Corvette       LS9 V8
4       1      Fusion         Duratec I4
5       2      Camaro         LSA V8
6       3      Ram            Hemi V8
7       1      Mustang        Modular V8
8       3      Grand Caravan  Pentastar V6
9       3      Challenger     Hemi V8
现在您可以执行以下操作:

$sql = mysql_query("select * from `table1` join `table2` using (`MakeID`)");
$out = Array();
while($car = mysql_fetch_assoc($sql)) {
    if( !isset($out[$car['MakeID']])) {
        $out[$car['MakeID']] = Array("make"=>$car['Make'],"models"=>Array());
    }
    $out[$car['MakeID']]['models'][] = Array(
        "ID"=>$car['ModelID'],
        "info":Array(
            "model"=>$car['Model'],
            "engine"=>$car['Engine']
        )
    );
}
$out = array_values($out);
echo json_encode($out);

您创建一个PHP数组,使用数据库中的数据填充它,然后使用
JSON_encode
将其转换为JSON。您创建一个数组,将其转换为JSON,回显它,然后死
头(“内容类型:application/JSON”);echo json_编码($array);死亡
$sql = mysql_query("select * from `table1` join `table2` using (`MakeID`)");
$out = Array();
while($car = mysql_fetch_assoc($sql)) {
    if( !isset($out[$car['MakeID']])) {
        $out[$car['MakeID']] = Array("make"=>$car['Make'],"models"=>Array());
    }
    $out[$car['MakeID']]['models'][] = Array(
        "ID"=>$car['ModelID'],
        "info":Array(
            "model"=>$car['Model'],
            "engine"=>$car['Engine']
        )
    );
}
$out = array_values($out);
echo json_encode($out);