Foros del Web » Programando para Internet » Android »

[SOLUCIONADO] Conexion Android + php + mysql

Estas en el tema de Conexion Android + php + mysql en el foro de Android en Foros del Web. Hola a todos! Estoy tratando de hacer una conexion desde la aplicacion a una base de datos, que realice un insert. Para eso, en una ...
  #1 (permalink)  
Antiguo 16/02/2012, 20:42
 
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires, Mar del plata
Mensajes: 250
Antigüedad: 15 años, 9 meses
Puntos: 2
Conexion Android + php + mysql

Hola a todos!
Estoy tratando de hacer una conexion desde la aplicacion a una base de datos, que realice un insert.

Para eso, en una direccion php tengo las siguientes variables:
Código PHP:
Ver original
  1. $us = $_POST['usuario'];
  2. $pas = $_POST['pass'];
  3. $dir = $_POST['Direccion'];
Luego se conecta, e inserta en la base con esos valores (que recibiria del cel)


En el cel tengo lo siguiente:

Código:
ArrayList parametros = new ArrayList();


// Llamada a Servidor Web PHP
try {
                        Post post = new Post();
                        JSONArray datos = post.getServerData(parametros, "http://www.xxxxxx.com/x/log.php");
entiendo que dentro de "parametros" tendria que mandar mis 3 variables para que luego php+mysql hagan su trabajo, no es asi?
Hay alguna otra opcion para mandarle las tres variables y lo inserte a la base?

Muchas gracias!!!!
  #2 (permalink)  
Antiguo 20/03/2012, 14:20
 
Fecha de Ingreso: abril-2009
Mensajes: 66
Antigüedad: 15 años
Puntos: 0
Respuesta: Conexion Android + php + mysql

Hola, sigue este manual. Te va a servir:

http://fsvelectronicainformatica.blo...iar-datos.html

Saludos
  #3 (permalink)  
Antiguo 20/03/2012, 16:19
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Conexion Android + php + mysql

No es mejor hacer un servicio web que haga el insert? No se si sea la mejor practica lo que estas intentando.

Saludos.
  #4 (permalink)  
Antiguo 21/03/2012, 07:05
 
Fecha de Ingreso: marzo-2012
Mensajes: 5
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Conexion Android + php + mysql

hola te funciona el codigo en android 4.0, es que tengo uno hecho para conectar con sql server y funciona en la version 2.3 o inferior pero a partir de la 3.1 no funciona y lo mismo me pasa a la hora de consumir el serivio web en java con la biblioteca ksoap2 solo funciona hasta la 2.3 es cierto esto y entonces para las versiones nuevas que hacemos
  #5 (permalink)  
Antiguo 25/03/2012, 17:13
 
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires, Mar del plata
Mensajes: 250
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Conexion Android + php + mysql

Hola.
No sabia eso de Android 4.0.

Al final, lo he solucionado de la siguiente manera:


String input_data= "xxxxxxxxxxxxxxx.php";

HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(input_data);

param.add(new BasicNameValuePair("xxxxx", user.getText().toString()));
param.add(new BasicNameValuePair("xxxxx", mail.getText().toString()));
try {
httpPost.setEntity(new UrlEncodedFormEntity(parametros));
HttpResponse httpRespose = httpClient.execute(httpPost);
HttpEntity httpEntity = httpRespose.getEntity();
InputStream in = httpEntity.getContent();

y luego todo lo que sigue para finalizar la conexion.
Con eso no he tenido problemas.

Por lo que averigué, Android no se conecta directamente con MYSQL, por lo que utilizamos PHP.

Saludos!!
  #6 (permalink)  
Antiguo 26/03/2012, 03:41
 
Fecha de Ingreso: marzo-2012
Mensajes: 1
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Conexion Android + php + mysql

Hola a todos!! yo estoy intentando conectarme a una base de datos mysql con la version android 2.1, pero no consigo que me muestre los datos, he seguido el manual de "Leunamal",os comento lo que tengo:
por un lado tengo los datos que me muestra el php, que son los siguientes

[{"id":"4","titulo":"atencionCliente.jpg","curso_id ":"29","numero":"1","tema":"3","subtema":"uno "},{"id":"6","titulo":"12.jpg","curso_id":"29","nu mero":"2","tema":"4","subtema":" dos "},{"id":"7","titulo":"00.jpg","curso_id":"34","nu mero":"1","tema":"5","subtema":"Indice "}]

y por otro el codigo java

package com.auto.application;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity ;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class CursoActivity extends Activity {
AutoCompleteTextView texto;
Button boton;
TextView resultado;
String total;
public void onCreate(Bundle SavedInstanceState)
{
super.onCreate(SavedInstanceState);
setContentView(R.layout.curso);
texto = (AutoCompleteTextView) findViewById(R.id.cajaTexto);
// texto.setAdapter(adapter);
boton = (Button) findViewById(R.id.botonBuscar);
resultado = (TextView) findViewById(R.id.resultado);
boton.setOnClickListener (new OnClickListener()
{

public void onClick(View v)
{

resultado.setText(getServerData(total));
}
});
}
//se declara la direccion ip del servidor
public final static String url = "XXXXXX(datos que muestra anteriormente)";

private String getServerData (String returnString)
{
String txt = texto.getText().toString();
if(!txt.equals(""))
{
InputStream is = null;

String result ="";

//Se envian datos de consulta;
ArrayList<NameValuePair> parametros = new ArrayList<NameValuePair>();
parametros.add(new BasicNameValuePair("nombre", "1"));

//Conectando a la base de datos
try
{
HttpClient cliente = new DefaultHttpClient();
HttpPost direccion = new HttpPost(url);
HttpResponse respuesta = cliente.execute(direccion);
respuesta.setEntity(new UrlEncodedFormEntity(parametros));
HttpEntity entity = respuesta.getEntity();
is = entity.getContent();
}
catch(Exception e)
{
Log.e("log_tag", "Error en la conexion a la base de datos"+e.toString());
Toast.makeText(this, "Error al conectar a la base de datos", Toast.LENGTH_LONG).show();
}

//Transformar respuesta de la conexion en string
try
{
BufferedReader reader = new BufferedReader (new InputStreamReader(is, "iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String linea = null;
while ((linea = reader.readLine()) != null)
{
sb.append(linea + "\n");

}
is.close();
result = sb.toString();
Log.e("log_tag", "Cadena JSON" + result);
}
catch(Exception e)
{
Log.e("log_tag", "Error al transformar datos. "+e.toString());
Toast.makeText(this, "Error al transformar datos", Toast.LENGTH_LONG).show();
}

//Recibir datos en formato JSON
try
{
JSONArray jArreglo = new JSONArray(result);
for(int i=0; i<jArreglo.length(); i++)
{
JSONObject json_datos = jArreglo.getJSONObject(i);
Log.i("log_tag", "id: "+json_datos.getInt("id")+
", titulo:"+json_datos.getString("titulo")+
", curso_id: "+json_datos.getInt("curso_id")+
", numero: "+json_datos.getInt("numero")+
", tema: "+json_datos.getInt("tema")+
", subtema: "+json_datos.getString("subtema"));
//Los datos se muestran en la pantalla
resultado.setText(total);
returnString += "\n\t" + jArreglo.getJSONObject(i);

}
}
catch (JSONException e)
{
Log.e("log_tag", "Error al recibir datos"+e.toString());
Toast.makeText(this, "Error al mostrar datos", Toast.LENGTH_LONG).show();
}
}
else Toast.makeText(this, "Escriba un curso", Toast.LENGTH_LONG).show();
return returnString;
}

}

y me sale un error al recibir datosorg.json.JSONException.
que puedo estar haciendo mal?.

Muchas gracias de antemano.
Saludoss!!!

Etiquetas: conexion, mysql, php, todo, aplicaciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:20.