2017-03-01 2 views
0

MySQLを実行しているPHPサーバからデータを取得しようとしています。私の角度コントローラーで私が行う$http.get("dbconnection.php")JSONの位置43の予期しないトークン

私の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'機能があります。 __not__はホイールを作りますか? –

+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

関連する問題