我对PHP有所了解,但我还在学习Json。首先,我想清楚我在寻找什么。我在mysql数据库中有两个表,table1(用户)和table2( business )。表“users”包含这些行(id,uid,business_name),表“business”包含这些行(id,uid,category)。
我在PHP页面中有以下代码:
if(isset($_GET['catName'])) {
$cat = $_GET['catName'];
$stmt = $pdo->prepare("SELECT id, uid, category FROM business WHERE category = ? ");
$stmt->execute(array($_GET['catName']));
$arr = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
我可以在我的html页面上获取json输出,例如 101,102,103等。
但是我希望根据第一个表的输出uid从第二个表“business”获取像ABC Business,XYZ Business,123 Business等的business_name行。简而言之,我想要business_name输出而不是第二个表的uid输出。 请帮我。非常感谢你。
答案 0 :(得分:0)
您有一个关联数组,其中包含查询结果。这听起来像你想要的商业名称,但你不是在询问它们。
所以第一步就是修复破碎的查询!
很难从查询中判断出你想要什么,但是你将users表与业务表混合在一起,所以我猜你真的想要基于用户的商业名称。
SELECT b.business_name FROM users u JOIN business b ON u.uid = b.uid WHERE category = ?
然后,您必须正确访问$ arr变量以获取商家名称
foreach ($arr as $bus_sql_result) {
echo $bus_sql_result['business_name']."\n";
}
这不是JSON格式,我不确定JSON与你想要的东西有什么关系,但如果你真的想要那样,你可以试试像
$business_names = array();
foreach ($arr as $bus_sql_result) {
$business_names[] = $bus_sql_result['business_name'];
}
echo json_encode($business_names);
答案 1 :(得分:0)
非常感谢Chris和Jormundir。加入这两个表真的解决了我的问题。这就是我所做的:
$ stmt = $ pdo-> prepare(“SELECT business.uid,users.business_name FROM business,users WHERE business.uid = users.uid AND business.category =?”);
在html页面中,我放了“business_name”数组而不是“uid”,无论我在寻找什么,我都得到了结果。
非常感谢你们所有人。