使用php将multipvert多维数组从多个表转换为单个json数组值

时间:2017-05-18 10:04:03

标签: php arrays json mysqli

在我的php脚本中尝试使用多维数组从单个json文件中的多个表执行数据。

所以我将用我的代码解释:

if($data){    
            $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; 

            $sql1="select * from en_venues where providerID = $providerID ";
            $result1 = mysqli_query($con,$sql1) or die("Error in Selecting " . mysqli_error($connection));
             $i=0;
        while ($row1['venue'][] = mysqli_fetch_assoc($result1)){
        echo $venueID=$row1['venue'][$i++]['venueID'];
        $resultArray['venues'] = $row1; 


            $sql2 = "select * from en_schedules as e ,en_persons as p where e.venueID = '".$venueID."'";
            $result2 = mysqli_query($con,$sql2) or die("Error in Selecting " . mysqli_error($con));
            while ($row2['Persons'][] = mysqli_fetch_assoc($result2)){
                $resultArray['Persons'] = $row2; 
            }  
}
}
echo json_encode($resultArray);
}

输出像

{
"providers": {
             "providerID": "1",
             "providerEmailAddress": "info@gdtennis.co.uk",
             "providerPW": "xxx",
             "providerName": "GDT Tennis ",
             "providerActive": "yes",
             "providerFeatured": "no",
           },
"venues": {
     "venue": {
           "venueID": "8",
           "providerID": "1",
           "venueActive": "yes",
           "venueName": "Wargrave LTC ",
              }
 }
"Persons": {
"Persons": [
  {
"scheduleID": "1",
"venueID": "151",
"scheduleTitle": "Mini Tennis Red ",
"scheduleDay": "Monday",
},
{
"scheduleID": "1",
"venueID": "151",
"scheduleTitle": "Mini Tennis yellow ",
"scheduleDay": "Monday",
},
{
"scheduleID": "1",
"venueID": "152",
"scheduleTitle": "Mini Tennis orange ",
"scheduleDay": "sunday",
}
],
}
}

在场地阵列中,我只有一个阵列,它有7个阵列值。但它只有一个,我不知道为什么这样。

请帮我解决问题

2 个答案:

答案 0 :(得分:1)

您需要尝试此解决方案。

            $sql1="select * from en_venues where providerID = $providerID ";
            $result1 = mysqli_query($con,$sql1) or die("Error in Selecting " . mysqli_error($connection));
            while ($row1['venue'][] = mysqli_fetch_assoc($result1)){

            $venueID=$row1['venue']['venueID'];
            $resultArray['venues'] = $row1; 

            $sql2 = "select * from en_schedules as e ,en_persons as p where e.venueID = '".$venueID."'";
            $result2 = mysqli_query($con,$sql2) or die("Error in Selecting " . mysqli_error($con));
            while ($row2['Persons'][] = mysqli_fetch_assoc($result2)){
                $resultArray['Persons'] = $row2; 
            }

你可以制作数组如何为人们制作。

答案 1 :(得分:1)

你只犯了一个错误,只需将$ row1 ['场地']改为$ row1 ['场地'] []

read -p "Throw in money" x
echo ""

while [ $x -ne 2 ] ;
do
case $x in
        0.5)
                read -p "more money" z
                x=$(($x + $z))
                ;;
        1)
                read -p "more money" z
                x=$(($x + $z))
                ;;
        1.5)
                read -p "more money" z
                x=$(($x + $z))
                ;;
        "R")
                echo "return x"
                x=0
                ;;
        ?)
                echo "enter something else!"
                x=0
                ;;
esac
done