2017-05-09 77 views
0

我有兩個表輸出,的Json在PHP需要層次

1 - 類別

2 - 子類別

Category (table 1) 
--------------- 
Cid | Name 

1  | Vegetable 

2  | Fruit 


SubCategory (table 2) 
---------------- 
Cid | Sid | S_name 

1 | 1 | Carrot 

1 | 2 | Beans 

2 | 3 | Mango 

我想要的結果一樣,在JSON: -

-> Category found 

     -> Vegetable 

      -> carrot 

      -> beans 

     -> Fruit 

      -> mango 

我正在使用下面的代碼!任何人都可以幫助我糾正我的代碼&獲得像我上面提到的輸出!我嘗試了很多次。但沒有得到解決方案!請幫助我獲得像目錄形式的輸出。謝謝

`$srtResult = "SELECT * FROM `category` `c` LEFT JOIN `subcategory` `s` ON 
(`c`.`cid` = `s`.`cid`)"; 

//Execute Qu**strong text**ery 
    $result=mysql_query($srtResult); 
    //Iterate Throught The Results 

    while ($row = mysql_fetch_assoc($result, MYSQL_ASSOC)) 
{ $count = $row['cid']; 
while($row['cid'] = $count) 
{ $subcatitem[] = Array("cid" => $row['cid'], "sid" =>$row['sid'],   
"sname" => $row['sc_name']); 
    } 
    $json['category'][] = Array("category" => Array("cid" => $row['cid'], 
"name" => $row['name'], "subcategory" => Array($subcatitem))); 
    } 

    header('Content-type: application/json'); 
echo json_encode($json);` 

回答

0

這不就夠了嗎?

$srtResult = "SELECT * FROM `category` `c` LEFT JOIN `subcategory` `s` ON 
(`c`.`cid` = `s`.`cid`)"; 
$result = mysql_query($srtResult); 

while ($row = mysql_fetch_assoc($result, MYSQL_ASSOC)) { 
    $json['category'][$row['name']] = $row['sc_name']; 
} 

header('Content-type: application/json'); 
echo json_encode($json); 

編輯:

在評論更多的解釋後,需要PHP陣列結構(以得到所需的JSON字符串)應該是這樣的:

Array 
(
    [success] => 1 
    [message] => Category found in Database 
    [Category] => Array 
     (
      [0] => Array 
       (
        [id] => 1 
        [name] => vegetable 
        [Subcategory] => Array 
         (
          [0] => Array 
           (
            [cid] => 1 
            [sid] => 1 
            [sc_name] => carrot 
           ) 

          [1] => Array 
           (
            [cid] => 1 
            [sid] => 2 
            [sc_name] => beans 
           ) 

         ) 

       ) 

      [1] => Array 
       (
        [id] => 2 
        [name] => Fruit 
        [Subcategory] => Array 
         (
          [0] => Array 
           (
            [cid] => 1 
            [sid] => 1 
            [sc_name] => Mango 
           ) 

         ) 

       ) 

     ) 

) 
+0

皮卡德,我想這一點,但它顯示我; - mysql_fetch_assoc()期望參數1是資源,布爾在第10行給出。 – Prince

+0

對於SELECT,(...)mysql_query()在成功時返回資源,或者在錯誤時返回FALSE。你的查詢中有一個錯誤 - 「$ srtResult」。也許表名不應該不是'subcategory',而是'SubCategory'?你可以通過檢查錯誤:'if(!$ result){die('Invalid query:'。mysql_error()); }' – Picard

+0

謝謝Picard, 我想在Json中輸出那樣的內容,你能指導我編碼嗎? {「success」:1,「message」:「在數據庫中找到類別」,「Category」: [{「id」:「1」,「name」:「vegetable」,「子類別」: [ 「cid」:「1」,「sid」:「1」,「sc_name」:「胡蘿蔔」}, {「cid」:「1」,「sid」:「2」,「sc_name」 }], {「id」:「2」,「name」:「Fruit」,「Subcategory」: [{「cid」:「1」,「sid」:「1」,「sc_name」芒果「}]}]} – Prince