2015-10-13 25 views
3

我無法正確顯示,在JSON中,我的數據庫中的兩個表起源的結果。PHP與Json + SQL

情況是這樣的:我在表格(A)中有訂單,這些訂單在另一個表格(B)中訂貨。

我的代碼:

$sqlcode2 = mysql_query("Select a.numero as numOrc, a.nomeclie, a.valortotal, a.formapagto, a.emissao, b.codprod, b.qtdade, b.valorunit, b.tipopreco from orcamento a, prodorc b"); 


$jsonObj= array(); 


if($something == 'all') 
{ 
    while($result=mysql_fetch_object($sqlcode2)) 
    { 
    $jsonObj[] = $result; 
    $teste= array('pedidos' => $jsonObj); 
    } 
} 

$final_res =json_encode($teste); 
echo $final_res; 

JSON結果是這樣的:

{ 
    "pedidos": [ 
      { 
       "numOrc": "1", 
       "nomeclie": "CONSUMIDOR", 
       "valortotal": "2.077,20", 
       "formapagto": "2", 
       "emissao": "2013-02-15 16:09:11", 
       "codprod": "4775", 
       "qtdade": "1", 
       "valorunit": "500,00", 
       "tipopreco": "B" 
      }, 
      { 
       "numOrc": "2", 
       "nomeclie": "MARCELO AUGUSTO BOTURA", 
       "valortotal": "2.077,20", 
       "formapagto": "2", 
       "emissao": "2013-02-15 16:21:56", 
       "codprod": "4775", 
       "qtdade": "1", 
       "valorunit": "500,00", 
       "tipopreco": "B" 
      } 
      ] 
} 

正如你所看到的,結果是唯一一個在每個訂單的產品。我需要的結果是如下(Detalhes TAG):

{ 
    "pedidos": [ 
      { 
       "numOrc": "2", 
       "nomeclie": "MARCELO AUGUSTO BOTURA", 
       "valortotal": "2.077,20", 
       "formapagto": "2", 
       "emissao": "2013-02-15 16:21:56", 
       "Detalhes": 
       [ 
       { 
       "codprod": "4775", 
       "qtdade": "1", 
       "valorunit": "500,00", 
       "tipopreco": "B" 
       }, 
       { 
       "codprod": "5555", 
       "qtdade": "3", 
       "valorunit": "800,00", 
       "tipopreco": "A" 
       } 
       ] 
      } 
      ] 
} 
+1

你可以用2個查詢來做到這一點嗎?首先選擇'pedidos'(色相br),然後選擇該訂單的產品。 – FirstOne

回答

1

什麼FirstOne建議是這樣一個簡單的例子。查看如何首先選擇訂單,然後使用第二個查詢收集有關該訂單的其他信息。

$sqlcode2 = mysql_query("Select a.numero as numOrc, a.nomeclie, a.valortotal, a.formapagto, a.emissao from orcamento a"); 

$jsonObj= array(); 

if($something == 'all') 
{ 
    while($result=mysql_fetch_object($sqlcode2)) 
    { 

     $sqlcode3 = mysql_query("Select b.codprod, b.qtdade, b.valorunit, b.tipopreco 
      FROM prodorc b WHERE b.numOrc = " . $result->numOrc); 

     $Detalhes = array(); 
     while($orderResult=mysql_fetch_object($sqlcode3)) 
     { 
      $Detalhes[] = $orderResult; 
     } 
     $result->Detalhes = $Detalhes; 

     $jsonObj[] = $result; 

    } 
} 
$teste= array('pedidos' => $jsonObj); 

$final_res =json_encode($teste); 
echo $final_res; 
+0

這工作正常!非常感謝你! –