2017-03-01 64 views
0

我試圖從運行MySQL的PHP​​服務器獲取數據。在我的角度控制器我做$http.get("dbconnection.php")在位置43的JSON中的意外令牌

在我的dbconnection.php我有這個代碼,只是選擇從數據庫中的一切,並將其發回。

$conn = new mysqli...... 

$result = $conn->query("SELECT * FROM ..."); 

$outp = ""; 

while ($rs = $result->fetch_array(MYSQLI_ASSOC)) { 
    if ($outp != "") { 
     $outp .= ","; 
    } 
    $outp .= '{"id":"' . $rs["id"] . '",'; 
    $outp .= '"name":"' . $rs["name"] . '",'; 
    $outp .= '"price":"' . $rs["price"] . '"}'; 
    $outp .= '"created":"' . $rs["created"] . '"}'; 
    $outp .= '"img":"' . $rs["img"] . '"}'; 
} 
$outp = '{"records":[' . $outp . ']}'; 
$conn->close(); 

echo $outp; 

當我訪問我的網站看看看看數據下

Network Tab > XHR > dbconnection.php > Preview

我看到的數據,但其怪異的格式化。

See picture of weird formatted json

我想這就是爲什麼我得到的

Unexpected token in JSON at position 43 ERROR 當我試圖獲取數據的原因。

+6

有'json_encode'功能。不要發明輪子。 –

+0

'price'和'created'加在一起的最後一個字符是'}'而不是',' –

+0

@ChrisForrence謝謝!這也是錯誤的。但沒有解決問題:) – rlated

回答

4

要正確格式化JSON輸出,請使用json_encode函數。

你的情況:

$conn = new mysqli...... 

$result = $conn->query("SELECT * FROM ..."); 
$json = ["records" => []]; 

while ($rs = $result->fetch_array(MYSQLI_ASSOC)) { 
    $json["records"][] = $rs; 
} 
$conn->close(); 

echo json_encode($json); 
+0

哼我的壞話,只是編輯了代碼。 –

+1

好吧,現在正在工作。謝謝老兄。你讓我今天一整天都感覺很好! – rlated