2016-10-09 5 views
0

Ich versuche, die Ergebnisse von SELECT-Abfrage mit vorbereiteten Anweisung in JSON-Ausgabe zu kodieren. Ich habe den folgenden Code, aber ich kann es nicht funktionieren. Jede Hilfe würde sehr geschätzt werden.JSON-Ausgabe für SELECT mit vorbereiteten Anweisung

$query = "SELECT Item.ItemID, Item.ItemName FROM Items" 
    $stmt = $db->prepare($query); 
    $stmt->execute(); 
    $stmt->store_result(); 
    $numrows = $stmt->num_rows; 
    $stmt->bind_result($ItemID, $ItemName); 

for ($i=0; $i <$numrows; $i++) { 
    $stmt->fetch(); 

$JSONArray = ["ItemID" => $ItemID, 
      "ItemName" => $ItemName 
      ] 

echo json_encode($JSONArray); 
} 
+0

Es gibt ein fehlendes Zitat im Code ($ query hat nicht das zweite Zitat), wenn das nicht das Problem war bitte schreiben Sie, was der Fehler angezeigt wird – odai

+1

Bitte fügen Sie weitere Informationen hinzu, wie es nicht funktioniert, Hast du irgendwelche Fehler? – JimL

+0

Fehlender Semikolon am Ende der Zeile 1. – bluegman991

Antwort

1

Sie sollten immer die Elemente in den Container Array hinzufügen, überschreiben nicht das gesamte Array und kodieren & nur einmal echo:

... 

$JSONArray = []; // initialize to empty array 
for ($i=0; $i <$numrows; $i++) { 
    $row = $stmt->fetch(); 
    $ItemID = $row['ItemID']; 
    $ItemName = $row['ItemName']; 
    // add the new item in each iteration 
    $JSONArray[] = ["ItemID" => $ItemID, 
      "ItemName" => $ItemName 
      ]; 
} 
echo json_encode($JSONArray); 
1

Glauben Sie, dass es nicht Items nicht Item sein sollte? außerdem fehlen Zitat und Semikolon.

Auch für die Konvention würde ich vorschlagen, Sie Kleinbuchstaben Tabellennamen zu halten. :)

Verwandte Themen