Php 多维数组将相同的键和值组合到已定义的数组元素中
我不熟悉php,得到存储json的mysql结果,但它不是我想要的coorect格式 请检查下面的代码Php 多维数组将相同的键和值组合到已定义的数组元素中,php,mysql,arrays,multidimensional-array,Php,Mysql,Arrays,Multidimensional Array,我不熟悉php,得到存储json的mysql结果,但它不是我想要的coorect格式 请检查下面的代码 $sql = "select * from en_providers where providerEmailAddress='" . $email . "' and providerPW='" . $password . "'"; $result = mysqli_query($con, $sql) or die("Error in Selecting " . mysqli_error($co
$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"
}
}
但我需要这些球道在各自的场地上,但结果是外线。如何将这些值附加到场馆中
我用不同的方式尝试了一天,但没有得到正确的格式
我想要的输出:
"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"
]
}
}
这条线
$resultArray[$x++]['venues']['venueIDFacilities'] = $venueFacilities;
应该是
$resultArray['venues'][$x++]['venueIDFacilities'] = $venueFacilities;
这是一个简单问题的大量代码,请减少代码这段代码还有其他问题:不要在迭代结果集的另一个循环中执行SQL语句。相反,使用联接改进初始SQL。更重要的是,您的代码容易受到SQL注入的攻击。你真的应该使用准备好的语句和绑定参数。好的@trincot我会检查它的紧急情况。你能解决上面的问题吗?如果我只得到第一个值,但不在数组中,请打开链接