Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Não é possível recuperar dados da tabela MySQL que corresponde a uid específico


Em seu aplicativo Android, você espera um JSONArray:
// store incoming stream in an array
JSONArray jArray = new JSONArray(streamToString(instream));

No entanto, em seu arquivo PHP, você produz apenas vários objetos JSON separados em vez de um array real. Eu acho que você deve coletar todos os itens do banco de dados em um array PHP primeiro e depois codificá-lo e enviá-lo apenas uma vez.

Minhas habilidades em PHP estão um pouco enferrujadas, mas espero que esta funcione:
//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);
}

Eu esperaria que a saída fosse assim (talvez sem recuo):
[
    {"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"}
]