2017-09-01 50 views
0

我是新來的php,獲取存儲json的mysql結果,但沒有gettng coorect格式我想要的。下面的代碼多維數組將相同的鍵和值組合到已定義的數組元素中

皮斯檢查

$sql = "select * from en_providers where providerEmailAddress='" . $email . "' and providerPW='" . $password . "'"; 
$result = mysqli_query($con, $sql) or die("Error in Selecting " . mysqli_error($connection)); 
if (mysqli_num_rows($result) > 0) { 
    $resultArray = array(); 
    while ($row = mysqli_fetch_assoc($result)) { 
     $providerID    = $row['providerID']; 
     $resultArray['providers'] = $row; 
     $resultArray['providers']['providerIDActivities'] = unserialize($row['providerIDActivities']); 
     $resultArray['providers']['providerIDBodies'] = unserialize($row['providerIDBodies']); 
     $resultArray['providers']['providerIDOthers'] = unserialize($row['providerIDOthers']); 

     $sql1 = "select * from en_venues where providerID = $providerID "; 
     $result1 = mysqli_query($con, $sql1) or die("Error in Selecting " . mysqli_error($connection)); 
     $i = $j = $l = $x = $m = 0; 
     while ($row1[] = mysqli_fetch_assoc($result1)) { 
      //$resultArray['venues'][]['venueIDFacilities'] = unserialize($row1[$j++]['venueIDFacilities']); 
      $venueID           = $row1[$j++]['venueID']; 
      $k            = 0; 
      $venueFacilities         = unserialize($row1[$i++]['venueIDFacilities']); 
      $resultArray[$x++]['venues']['venueIDFacilities'] = $venueFacilities; 

      //$resultArray['venues'][$x++]['venueID'] = $venueID; 
      $resultArray['venues'] = $row1; 
      //echo json_encode($resultArray); 



     echo json_encode($resultArray); 
    } 
} 

輸出是:

{ 
    0: { 
     "venues": { 
      "venueIDFacilities": [ 
       "1", 
       "2", 
       "3" 
      ], 
     } 
    }, 
    1: { 
     "venues": { 
      "venueIDFacilities": [ 
       "4", 
       "7" 
      ], 
     } 
    } 
}, 
"providers": { 
    "providerIDActivities": [ 
     "218", 
     "219" 
    ], 
    "providerIDSports": "a:1:{i:0;i:82;}", 
    "providerIDBodies": [ 
     "112" 
    ], 
}, 
venues": { 
    0: { 
     "venueID": "9", 
     "providerID": "2" 
    }, 
    1: { 
     "venueID": "238", 
     "providerID": "2", 
     "venueActive": "yes" 
    } 
} 

但我需要那些VenueFailities是在各自的場地,但結果是借用外力。我如何將這些值添加到場地?

我想用不同的方法一天,但它沒有得到正確的格式。

輸出我想:

"providers": { 
    "providerIDActivities": [ 
     "218", 
     "219" 
    ], 
    "providerIDSports": "a:1:{i:0;i:82;}", 
    "providerIDBodies": [ 
     "112" 
    ], 
}, 
venues": { 
    0: { 
     "venueID": "9", 
     "providerID": "2", 
     "venueIDFacilities": [ 
      "4", 
      "7" 
     ] 
    }, 
    1: { 
     "venueID": "238", 
     "providerID": "2", 
     venueIDFacilities": [ 
      "4", 
      "7" 
     ] 
    } 
} 
+0

這是一個很大的代碼,一個簡單的問題,請降低你的代碼 – DarkMukke

+1

此代碼有其他問題:不要在迭代結果集的另一個循環內執行SQL語句。而是使用連接來改進您的初始SQL。更重要的是,您的代碼易受SQL注入攻擊。你真的應該使用準備好的語句並綁定參數。 – trincot

+0

好吧@trincot我會chagne它的迫切你能解決上述問題 – SaikumarBitta

回答

1

此行

$resultArray[$x++]['venues']['venueIDFacilities'] = $venueFacilities; 

應該

$resultArray['venues'][$x++]['venueIDFacilities'] = $venueFacilities; 
+0

因爲我只獲得第一個值,但不是在場館數組請打開鏈接https://codeshare.io/5zXL97 – SaikumarBitta