Bases de datos remotas en ios

Para dar las gracias debes entrar o registrarte en el foro

iMiembro
iMiembro
Mensajes: 10 Agradecido: 0
13 Sep 2012, 22:49# 1

Hola. Soy nuevo en la programación en ios.
Tengo un problema, ya que estoy creando un proyecto, en el que necesito almacenar los datos de los usuarios, para saber su ubicación y otros datos y esos datos van a ser compartidos para que los vean los demás usuarios. Entonces, he creado una base de datos remota alojada en un servidor externo con MAMP. Y mediante PHP hago la conexión con xcode para ios. El problema está, que en el PHP, se pone la sentencia sql de la tabla que necesito de BD. Por ejemplo una select de la tabla usuarios. Si yo quisiese hacer una select de otra tabla, o algún insert, tendría que crear otro archivo PHP para crear cada sentencia. Me pregunto si de alguna manera se puede enviar las sentencias sql al archivo php, y así poder hacer sólo un archivo php, que haga las sentencias sql que se le envíen desde ios.
Os pongo mi código PHP:

// Credenciales de la BBDD
$host = 'localhost';
$db = 'json';
$uid = 'json';
$pwd = 'json1';

// Conectar al servidor de la BBDD
$link = mysql_connect($host, $uid, $pwd) or die("No se puede conectar a la BBDD");

// Seleccionamos la BBDD
mysql_select_db($db) or die("No se puede seleccionar la BBDD");

// Creamos un array para meter los resultados
$arr = array();
// Lanzamos la consulta
$rs = mysql_query("SELECT id, userid, firstname, lastname, email FROM users");

//Agregamos las filas al array
while($obj = mysql_fetch_object($rs)){
$arr[] = $obj;
}

//Devolvemos el resultado
echo '{"users":'.json_encode($arr).'}';
?>


Y la forma que lo pongo en el xcode para hacer la conexión:

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSURL *url = [NSURL URLWithString:@"http://localhost:8888/ConsultaMysql.php"];
NSLog(@"Ha pasado la url");

NSStringEncoding *encoding = NULL;
NSError *error = nil;

NSString *jsonReturn = [[NSString alloc] initWithContentsOfURL:url usedEncoding:encoding error:&error];

NSData *jsonData = [jsonReturn dataUsingEncoding:NSUTF32BigEndianStringEncoding];
NSDictionary *dict = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&error];

if(dict){
rows = [dict objectForKey:@"users"];
}

NSLog(@"Array: %@",rows);
}

Gracias  
Etiquetado en:
Publicidad
Publicidad