Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/06/2012, 14:50
Polkiko
 
Fecha de Ingreso: enero-2011
Mensajes: 59
Antigüedad: 13 años, 4 meses
Puntos: 2
Respuesta: Devolver error en consulta PHP a base de datos

Cita:
Iniciado por cucuru Ver Mensaje
Debes generar una respuesta desde el código php, por ejemplo:

Código PHP:

    
if($e=mysql_fetch_assoc($q)) {
            
$output[]=array("user" => "true");
    } else {
          
$output[]=array("user" => "false");
    }


    print(
json_encode($output)); 
y desde tu código en android lees con AsyncTask y actúas según el valor de "user"

Aquí tienes un ejemplo:

http://www.helloandroid.com/tutorial...mysql-database
Jejeje... lo veo algo complicado...

Vamos a poner el ejemplo que yo quiero realizar. A continuación te pongo el código PHP de ejemplo para detectar campos vacios...
Código PHP:
// Ejemplo de "if"
if (($nick == '') or ($email == '') or ($pass == '')){
// Retornariamos error de Campos vacios a android...

$output[]=array("user" => "campovacio");
print(
json_encode($output))

}else{
// Si no pues continuariamos con el registro...

mysql_query(sprintf("INSERT INTO usuarios (nick,email,pass,level,pais,fechanacimiento,fecharegistro,ipregistro,validacion,baneo) values 
('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')"
,
mysql_real_escape_string($nick),
mysql_real_escape_string($email),
mysql_real_escape_string($pass),
mysql_real_escape_string($level),
mysql_real_escape_string($pais),
mysql_real_escape_string($fechanacimiento),
mysql_real_escape_string($fecharegistro),
mysql_real_escape_string($ipregistro),
mysql_real_escape_string($validacion),
mysql_real_escape_string($baneo)));
}
?> 
¿Estaría bien enviando ese output?
Luego me faltaria la parte de leerlo en android... que eso si que no se como hacerlo jejejeje...
Te dejo el código, lo he retocado un poco...
Código PHP:
try {


    
Post post = new Post();
    
JSONArray datos post.getServerData(parametros,
                                                   
"http://web.com/registroandroid.php");


   
Toast.makeText(getBaseContext(),
                                                  
"¡Has sido registrado correctamente! Ya puedes iniciar sesión"Toast.LENGTH_SHORT)
                                                                        .
show();
   
Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
        
        
startActivity(intent);
} catch (
Exception e) {
    
Toast.makeText(getBaseContext(),
                                                   
"Error al conectar con el servidor. ",
                                                   
Toast.LENGTH_SHORT).show();

Ahi abria que añadirle antes de mostrar el Toast de "usuario registrado" un IF en caso de que no se hubiera registrado por un fallo y mostrarlo.
Muchas gracias!