2017-11-11 15 views
1

を使用してJSONデータを操作し、私はSQLから取得し、正常に動作しているJSONに変換するために、PHPを使用してAPIを行った。..うまくAngularJS

あなたを願っています。私の唯一の問題は、私は私が望むようにJSONをフェッチするためにこのPHPを操作することはできませんでした。解決策は、私のapi.phpで$ outpの配置を信じています。私はSQLでプライマリIDを持っていますが、JSONを表示するためにインデックスとして使用できますか?

は何の努力がここ

を報われる、ありがとう出力はJSONです:ここでは

{ 
talents: [ 
{ 
id: "1", 
tag: "001", 
name: "Jasmina", 
images: "assets/images/Jasmina3.jpg", 
images02: "assets/images/Jasmina4.jpg", 
images03: "assets/images/Jasmina7.jpg", 
skills: "Usher", 
skills02: "Modeling", 
indexing: "usher" 
}, 
{ 
id: "2", 
tag: "002", 
name: "Bruna", 
images: "assets/images/BrunaD17.jpg", 
images02: "assets/images/BrunaD18.jpg", 
images03: "assets/images/BrunaD10.jpg", 
skills: "Usher", 
skills02: "Modeling", 
indexing: "usher" 
} 
] 
} 

は私が期待結果である:

{ 
talents: [ 
1: { 
tag: "001", 
name: "Jasmina", 
images: "assets/images/Jasmina3.jpg", 
images02: "assets/images/Jasmina4.jpg", 
images03: "assets/images/Jasmina7.jpg", 
skills: "Usher", 
skills02: "Modeling", 
indexing: "usher" 
}, 

2:{ 
tag: "002", 
name: "Bruna", 
images: "assets/images/BrunaD17.jpg", 
images02: "assets/images/BrunaD18.jpg", 
images03: "assets/images/BrunaD10.jpg", 
skills: "Usher", 
skills02: "Modeling", 
indexing: "usher" 
} 
] 
} 

そして、私のAPIでかいま見を取ります、その$ outpで遊ぶのを手伝ってください。それを得るために。

<?php 
//header("Access-Control-Allow-Origin: *"); 
header("Content-Type: application/json; charset=UTF-8"); 

$conn = new mysqli("localhost", "root", "", "application"); 

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

$outp = ""; 
while($rs = $result->fetch_array(MYSQLI_ASSOC)) { 
    if ($outp != "") {$outp .= ",";} 
    $outp .= '{"id":"' . $rs["id"] . '",'; 
    $outp .= '"tag":"' . $rs["tag"] . '",'; 
    $outp .= '"name":"' . $rs["name"]  . '",'; 
    $outp .= '"images":"'. $rs["images"]  . '",'; 
    $outp .= '"images02":"'. $rs["images02"]  . '",'; 
    $outp .= '"images03":"'. $rs["images03"]  . '",'; 
    $outp .= '"skills":"'. $rs["skills"]  . '",'; 
    $outp .= '"skills02":"'. $rs["skills02"]  . '",'; 
    $outp .= '"indexing":"'. $rs["indexing"] . '"}'; 
} 
$outp ='{"talents":['.$outp.']}'; 
$conn->close(); 

echo($outp); 
?> 

答えて

2

代わりのネイティブjson_encodeを使用し自分でJSONを構築しようとしています。 JSONを使用しているすべてのエッジケースを解決します。

これは連想配列なので、フィールドごとに指定することができます(例のように、ユーザーに送信する正確なフィールドを指定することが推奨されています。機密データの露出)、または単に$outp[$rs["id"]] = $rs;

<?php 
header("Content-Type: application/json; charset=UTF-8"); 

$conn = new mysqli("localhost", "root", "", "application"); 

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

$outp = array(); 
while ($rs = $result->fetch_array(MYSQLI_ASSOC)) { 
    $outp[$rs["id"]] = array(
     "tag" => $rs["tag"], 
     "name" => $rs["name"], 
     "images" => $rs["images"], 
     "images02" => $rs["images02"], 
     "images03" => $rs["images02"], 
     "skills" => $rs["skills"], 
     "skills02" => $rs["skills02"], 
     "indexing" => $rs["indexing"] 
    ); 
} 
$outp["talents"] = array($outp); 
$conn->close(); 

echo (json_encode($outp)); 
?> 
+0

魅力のように作業します。ありがとよ –