2013-01-02 47 views
0

我有PHP的知识,但我仍然在学习Json。首先,我想清楚我在找什么。我在mysql数据库中有两个表,table1(users)和table2(business)。表“用户”包含这些行(id,uid,business_name)和表“business”包含这些行(id,uid,category)。我想从第二个表中得到第一个表格输出结果的输出结果json-php

我有以下的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”获取business_name行,如ABC Business,XYZ Business,123 Business等。简而言之,我想要business_name输出,而不是第二个表的uid输出。 请帮帮我。提前谢谢你。

+1

'加入'业务表并阅读'bussiness_name'列。 – Chris

+2

这与json有什么关系? – AndreKR

+0

谢谢克里斯,这解决了我的问题。 –

回答

0

东西太谢谢你了克里斯和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”,并且我得到了我想要的结果。

非常感谢你们所有人。

0

您有一个关联数组和查询结果。这听起来像你想要的商业名称,但你不是为他们查询。

因此,第一步将修复你的破碎的查询!

很难说出你想从查询中得到什么,但是你将用户表与业务表混合在一起,所以我猜你确实需要基于用户的商业名称。

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); 
相关问题