2017-02-05 60 views
0

發生AJAX調用我想從數據庫中選擇一些數據併發送回客戶端。 $resultSELECT QUERYphp不會讓我回聲JSON字符串

案例1的返回值:這工作得很好

$str = "["; 
    while($row = mysqli_fetch_assoc($result)) { 
      $str = $str ."{". 

          '"Name":'. '"'. $row["Name"] . '"' 

         . "},"; 
    } 
} 
$str = $str . "]"; 
echo str; 

CASE2:這工作太細:

$str = "["; 
    while($row = mysqli_fetch_assoc($result)) { 
      $str = $str ."{". 

          '"ID":'. '"'. $row["ID"] //SEE HERE 

         . "},"; 
    } 
} else { 
    echo "0 results"; 
} 

$str = $str . "]"; 

echo $str; 

CASE3:但繼與500()提供錯誤

$str = "["; 
    while($row = mysqli_fetch_assoc($result)) { 
      $str = $str ."{". 

          '"ID":'. '"'. $row["ID"] . '",' //SEE HERE 
          '"Name":'. '"'. $row["Name"] . '"' 


         . "},"; 
    } 
} else { 
    echo "0 results"; 
} 

$str = $str . "]"; 

echo $str; 

我想使它成爲JSON格式後發送迴應STR和使用在客戶端的解析吧`JSON.parse()來。當我只有一個鍵值對時,Case1和2工作正常。但只要我把2個鍵值對我得到錯誤:

POST https://******************.php 500() 
+0

這不是我朋友的最佳方式 –

+1

@HBensiali我知道。你能告訴我其他的方式,以便我可以在客戶端接收JS對象的數組嗎? – SKG

回答

3

你真的需要使用相應的功能。

進入良好的編程習慣。

$rtn = []; //create array 
while($row = mysqli_fetch_assoc($result)){ 
    //push result into array 
    $rtn[] = ['ID'=> $row["ID"], 'Name'=> $row['Name']]; 
} 

if($rtn)//if array has entries 
    echo json_encode($rtn);//encodes result to json 
else 
    echo "0 results"; 
1

它返回500,因爲你的腳本中有錯誤。您可以添加下面的代碼並檢查錯誤在哪裏。

error_reporting(E_ALL); 
ini_set('display_errors', TRUE); 
ini_set('display_startup_errors', TRUE); 

可能在您的代碼中缺少點。檢查:

$str = $str . "{" . 

    '"ID":' . '"' . $row["ID"] . '",' . 
    '"Name":' . '"' . $row["Name"] . '"' 

. "},";