2016-05-06 46 views
1

我正在創建web服務,其中我已經提供了一個函數,它在php中提供給我多維數組,但要將這些數據發送到android,我們必須將它轉換爲json的響應之後試過很多現在,我得到的各種問題從phparray到jsonarray的類型轉換併發送回應

現在這些功能,該功能提供PHP數組名是getabsendstudent:

public function getabsendstudents($lecture1, $lecture2) { 

    function bool2str($bool) { 
     if ($bool === false) 
      return 'FALSE'; 
     else 
      return 'TRUE'; 
    } 

    function compareObjects(&$o1, &$o2) { 
     echo 'o1 == o2 : ' . bool2str($o1 == $o2) . "\n"; 
    } 

    ///queries 
    $ss = "SELECT * FROM attendence WHERE lecturenumber = $lecture1"; 
    $ss2 = "SELECT * FROM attendence WHERE lecturenumber = $lecture2"; 

    $result = mysql_query($ss); 
    $result2 = mysql_query($ss2); 

    // fetching number of rows 
    $no_of_rows = 0; 
    $no_of_rows2 = 0; 
    $no_of_rows = mysql_num_rows($result); 
    $no_of_rows2 = mysql_num_rows($result2); 

    ///// array objects 
    $testforstudent = array(); 
    $testforstudent2 = array(); 
    $absentstudent = array(); 
    $presentstudent = array(); 

    //// variable declaration 
    $len=0; 
    $result_array_for_lec1[] = array(); 
    $result_array_for_lec2[] = array(); 

    ///fetching whole students in arrays 
    if ($no_of_rows > 0) { 
     $acount = 0; 
     $pcout = 0; 

     while ($row = mysql_fetch_array($result)) { 
      $testforstudent[] = $row; 
      $acount = $acount + 1; 
     } 
    } 

    if ($no_of_rows > 0) { 
     $pcount = 0; 
     while ($row2 = mysql_fetch_array($result2)) { 
      $testforstudent2[] = $row2; 
      $pcount = $pcount + 1;   
     } 
    } 

    /// here we are comparing in status of student 
    // otherwise student had bunked classes   
    if ($no_of_rows > $no_of_rows2) 
     $len = $no_of_rows2; 
    else 
     $len = $no_of_rows; 

    global $p; 
    global $a; 
    for ($i = 0; $i < $len; $i++) { 
     $bo = strtolower($testforstudent[$i]["status"]) == strtolower($testforstudent2[$i]["status"]); 

     if ($bo) { 
      ////present student  
     } 
     else { 
      $absentstudent[$a] = $testforstudent2[$i]; 
      $a++; 
     } 
    } 

    echo json_encode($absentstudent); 
    return $absentstudent; 
} 

這是由這些函數生成的數據

{ 
    "": { 
      "0": "17", 
      "id": "17", 
      "1": "\"12:30\"", 
      "starttime": "\"12:30\"", 
      "2": "9", 
      "classid": "9", 
      "3": "\"2:30\"", 
      "endtime": "\"2:30\"", 
      "4": "cs602", 
      "lecturecode": "cs602", 
      "5": "1102", 
      "teacherid": "1102", 
      "6": "0827cs131235", 
      "enrollmentnumber": "0827cs131235", 
      "7": "\"P\"", 
      "status": "\"P\"", 
      "8": "\"24/04/2016\"", 
      "dateof": "\"24/04/2016\"", 
      "9": "\"sunday\"", 
      "dayof": "\"sunday\"", 
      "10": "2", 
      "lecturenumber": "2" 
    }, 
    "1": { 
      "0": "18", 
      "id": "18", 
      "1": "\"12:30\"", 
      "starttime": "\"12:30\"", 
      "2": "9", 
      "classid": "9", 
      "3": "\"2:30\"", 
      "endtime": "\"2:30\"", 
      "4": "cs602", 
      "lecturecode": "cs602", 
      "5": "1102", 
      "teacherid": "1102", 
      "6": "0827cs131236", 
      "enrollmentnumber": "0827cs131236", 
      "7": "\"P\"", 
      "status": "\"P\"", 
      "8": "\"24/04/2016\"", 
      "dateof": "\"24/04/2016\"", 
      "9": "\"sunday\"", 
      "dayof": "\"sunday\"", 
      "10": "2", 
      "lecturenumber": "2" 
    } 
} 

現在我創造了一個更加功能,正趕上$ absentarray與$變量resultarray.and我需要這些功能 碼碼

$result_array = $db->getabsendstudents($lecture1, $lecture2); 
if ($result_array) { 
    $count = 0; 

    // result array is catching absentstudent array 
    $response["success"] = 1; 
    $response["user"][$count]["classid"] = $result_array[$count]["classid"]; 

    $count = $count + 1; 
} 
else { 
    // user failed to store 
    $response["error"] = 1; 
    $response["error_msg"] = "JSON Error occured in Registartion"; 
    echo json_encode($response); 
} 
+0

試着把你的調用'echo json_encode($ response);'在else聲明之外。 – jaolstad

+0

我已經做了那件事,我已經把這一個如果陳述也 –

回答

0

解決:這個問題已經由剛應用的foreach的邏輯解決循環和if($ result_array)選擇。代碼是

if ($result_array) { 
       $count=0;  
     foreach ($result_array as $value) 
      { 

       // user stored successfully 
      $response["success"] = 1; 
      $response["user"][$count]["classid"] = $value["classid"]; 
      $response["user"][$count]["enrollmentnumber"]= $value["enrollmentnumber"]; 
      $response["user"][$count]["teacherid"]=$value["teacherid"]; 


      $count=$count+1; 

      } 

    echo json_encode($response); 

    } 
相關問題