Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Es können keine Daten aus der MySQL-Tabelle abgerufen werden, die mit einer bestimmten UID übereinstimmen

In Ihrer Android-App erwarten Sie ein JSONArray:

// store incoming stream in an array
JSONArray jArray = new JSONArray(streamToString(instream));

In Ihrer PHP-Datei geben Sie jedoch nur mehrere separate JSON-Objekte anstelle eines echten Arrays aus. Ich denke, Sie sollten zuerst alle Elemente aus der Datenbank in einem PHP-Array sammeln und dann nur einmal codieren und ausgeben.

Meine PHP-Kenntnisse sind etwas eingerostet, aber ich hoffe, das hier wird funktionieren:

//store # of rows returned
$num_rows = mysql_num_rows($query);

if ($num_rows >= 1) {
    $output = array();

    while($results = mysql_fetch_assoc($query)) {
        // append row to output
        $output[] = results
    }

    mysql_close();  // shouldn't that be outside the if block?

    //encode the returned data in JSON format
    echo json_encode($output);
}

Ich würde erwarten, dass die Ausgabe dann so aussieht (vielleicht ohne Einrückung):

[
    {"nid":"1","vid":"1","type":"goal","language":"","title":"test","uid":"1","status":"1","created":"1342894493","changed":"1342894493","comment":"2","promote":"1","moderate":"0","sticky":"1","tnid":"0","translate":"0"},
    {"nid":"2","vid":"2","type":"goal","language":"","title":"test2","uid":"1","status":"1","created":"1342894529","changed":"1342894529","comment":"2","promote":"1","moderate":"0","sticky":"1","tnid":"0","translate":"0"},
    {"nid":"5","vid":"5","type":"goal","language":"","title":"run","uid":"1","status":"1","created":"1343506987","changed":"1343506987","comment":"2","promote":"1","moderate":"0","sticky":"1","tnid":"0","translate":"0"},
    {"nid":"9","vid":"9","type":"goal","language":"","title":"run to the hills","uid":"1","status":"1","created":"1343604338","changed":"1343605100","comment":"2","promote":"0","moderate":"0","sticky":"0","tnid":"0","translate":"0"}
]