PHP(或jQuery,如果需要):将其他表中的相关MySQL记录输出为JSON?
我有两张桌子: 表1: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
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);