我有PHP知识,但我仍在学习Json。首先我想弄清楚我在找什么。我在mysql数据库中有两个表,table1(users)和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);
}
我能够得到json输出在我的html页面,例如。101、102、103等等。
但是我想根据第一个表的输出uid从第二个表"Business"中获得ABC Business、XYZ Business、123 Business等business_name行。简而言之,我想要第二个表的business_name输出而不是uid输出。请帮帮我。非常感谢。
您有一个关联数组,其中包含查询的结果。听起来您想要企业名称,但您没有查询它们。
所以第一步是修复你的破碎的查询!
很难判断您想从查询中得到什么,但是您将用户表和业务表混合在一起,所以我猜您确实想要基于用户的业务名称。
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);
感谢Chris和Jormundir。把两张桌子连在一起真的解决了我的问题。这是我所做的:
$stmt = $pdo->prepare("SELECT business. SELECT ")uid,用户。business_name FROM business,users WHERE business。Uid = users。uid和业务。类别= ?");
在html页面中,我已经把"business_name"数组而不是"uid",我已经得到了我正在寻找的结果。
非常感谢大家。