繁体   English   中英

我想基于json-php中输出的第一张表行从第二张表获得输出结果

[英]I want to get output result from second table based on first table rows output in json-php

我了解PHP,但仍在学习Json。 首先,我想弄清楚我要寻找的东西。 我在mysql数据库中有两个表,table1( users )和table2( business )。 表“用户”包含这些行(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输出。 请帮我。 提前非常感谢您。

您具有一个关联数组,其中包含查询结果。 听起来您想要公司名称,但您没有在查询它们。

因此,第一步就是修复损坏的查询!

很难说出您要查询的内容,但是您要混合使用users表和business表,因此我猜您确实希望基于用户的公司名称。

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.uid,users.business_name FROM business,users where business.uid = users.uid AND business.category =?”);

在html页面中,我放了“ business_name”数组而不是“ uid”,得到的结果我一直在寻找。

非常感谢大家。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM