2013-01-02 78 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); 
相關問題