0

私はPHPの知識がありますが、まだJsonを学んでいます。まず、探しているものを明確にしたい。mysqlデータベースにはtable1(users)とtable2(business)の2つのテーブルがあります。テーブル「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に基づいて、2番目のテーブル「business」からABC Business、XYZ Business、123Businessなどのbusiness_name行を取得したいと思います。簡単に言うと、2番目のテーブルからのuid出力ではなく、business_name出力が必要です。私を助けてください。よろしくお願いします。

4

2 に答える 2

0

クリスとヨルムンディル、どうもありがとう。両方のテーブルを結合することで、私の問題は本当に解決しました。これは私がしたことです:

$ stmt = $ pdo-> prepare( "SELECT business.uid、users.business_name FROM business、users WHERE business.uid = users.uid AND business.category =?");

htmlページに「uid」の代わりに「business_name」配列を配置しました。探していたものは何でも結果が得られました。

どうもありがとうございました。

于 2013-01-03T05:25:02.670 に答える
0

クエリの結果を含む連想配列があります。商号が必要なようですが、照会していません。

したがって、最初のステップは壊れたクエリを修正することです!

クエリから何が欲しいかを判断するのは難しいですが、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);
于 2013-01-02T18:56:30.927 に答える