Mysql
 sql >> Database >  >> RDS >> Mysql

Impossibile recuperare i dati dalla tabella MySQL che corrisponde a un uid specifico

Nella tua app Android, ti aspetti un JSONArray:

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

Tuttavia, nel tuo file PHP emetti solo più oggetti JSON separati invece di un vero array. Penso che dovresti prima raccogliere tutti gli elementi dal database in un array PHP, quindi codificarlo ed emetterlo solo una volta.

Le mie competenze in PHP sono un po' arrugginite, ma spero che questa funzionerà:

//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);
}

Mi aspetterei che l'output fosse così (forse senza indentazione):

[
    {"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"}
]