![](/img/trans.png)
[英]Check rows in first table, compare them with rows from the second table and output a match
[英]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.