2017-09-01 18 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

相关问题