Buenas de nuevo, hoy les traigo un nuevo tutorial de como pasar los datos de android a una base de datos en mysql .
Hoy haremos un ejercicio simple que constara en una web service, que nos permitirá hacer un registro simple. Primero veremos en una imagen como es la estructura.
¿Que vamos a utilizar?:
Un servicio Apache con Mysql
Un WebService
Una base de datos»ws_insertar» para almacenar datos
NOTA: Al final del post les dejare los archivos
Primero crearemos nuestra base de datos en mi caso le puse de nombre ws_insertar, luego creamos nuestra tabla personas.
CREATE TABLE IF NOT EXISTS `personas` ( `dni` varchar(8) NOT NULL, `nombre` varchar(60) NOT NULL, `telefono` varchar(15) NOT NULL, `email` varchar(60) NOT NULL, PRIMARY KEY (`dni`) )
Creamos nuestro insertar.php
<?php $hostname_localhost ="localhost"; //nuestro servidor $database_localhost ="ws_insertar";//Nombre de nuestra base de datos $username_localhost ="root";//Nombre de usuario de nuestra base de datos (yo utilizo el valor por defecto) $password_localhost ="12345";//Contraseña de nuestra base de datos (yo utilizo por defecto) $localhost = mysql_connect($hostname_localhost,$username_localhost,$password_localhost)//Conexión a nuestro servidor mysql or trigger_error(mysql_error(),E_USER_ERROR); //mensaaje de error si no se puede conectar mysql_select_db($database_localhost, $localhost);//seleccion de la base de datos con la que se desea trabajar //variables que almacenan los valores que enviamos por nuestra app, (observar que se llaman igual en nuestra app y aqui) $nombre=$_POST['nombre']; $dni=$_POST['dni']; $telefono=$_POST['telefono']; $email=$_POST['email']; if (empty($_POST["dni"]) AND $_POST["nombre"]!==''){ echo "Faltan DATOS los campos estan vacios"; }else{ $query_search = "insert into personas(nombre,dni,telefono,email) values ('".$nombre."','".$dni."','".$telefono."','".$email."')";//Sentencia sql a realizar $query_exec = mysql_query($query_search) or die(mysql_error());//Ejecuta la sentencia sql. } ?>
ya tenemos nuestra BD y nuestra parte php que servirá para la web service. Si todo han configurado y creado bien deben ir a su navegador en la siguiente ruta localhost/ws_insertar/insertar.php y debe salirse lo siguiente. Los errores son porque no están enviando ningún dato para registrarse.
Ahora toca la parte Android. creamos una aplicación nueva y agregamos los siguientes campos como esta en la imagen.
MainActivity
public class MainActivity extends AppCompatActivity { private EditText dni; private EditText nombre; private EditText telefono; private EditText email; private Button insertar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dni= (EditText)findViewById(R.id.txtDni); nombre= (EditText)findViewById(R.id.txtNombre); telefono = (EditText)findViewById(R.id.txtTelefono); email = (EditText)findViewById(R.id.txtEmail); insertar = (Button)findViewById(R.id.btnInsertar); insertar.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(!dni.getText().toString().trim().equalsIgnoreCase("")|| !nombre.getText().toString().trim().equalsIgnoreCase("")|| !telefono.getText().toString().trim().equalsIgnoreCase("")|| !email.getText().toString().trim().equalsIgnoreCase("")) new Insertar(MainActivity.this).execute(); else Toast.makeText(MainActivity.this, "Hay información por rellenar", Toast.LENGTH_LONG).show(); } }); } //Insertamos los datos a nuestra webService private boolean insertar(){ HttpClient httpClient; List<NameValuePair> nameValuePairs; HttpPost httpPost; httpClient = new DefaultHttpClient(); httpPost = new HttpPost("http://192.168.1.32/ws_insertar/insertar.php");//url del servidor //empezamos añadir nuestros datos nameValuePairs = new ArrayList<NameValuePair>(4); nameValuePairs.add(new BasicNameValuePair("dni",dni.getText().toString().trim())); nameValuePairs.add(new BasicNameValuePair("nombre",nombre.getText().toString().trim())); nameValuePairs.add(new BasicNameValuePair("telefono",telefono.getText().toString().trim())); nameValuePairs.add(new BasicNameValuePair("email",email.getText().toString().trim())); try { httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); httpClient.execute(httpPost); return true; } catch(UnsupportedEncodingException e){ e.printStackTrace(); }catch (ClientProtocolException e){ e.printStackTrace(); }catch (IOException e){ e.printStackTrace(); } return false; } //AsyncTask para insertar Personas class Insertar extends AsyncTask<String,String,String> { private Activity context; Insertar(Activity context){ this.context=context; } protected String doInBackground(String... params) { // TODO Auto-generated method stub if(insertar()) context.runOnUiThread(new Runnable(){ @Override public void run() { // TODO Auto-generated method stub Toast.makeText(context, "Persona insertada con éxito", Toast.LENGTH_LONG).show(); nombre.setText(""); dni.setText(""); telefono.setText(""); email.setText(""); } }); else context.runOnUiThread(new Runnable(){ @Override public void run() { // TODO Auto-generated method stub Toast.makeText(context, "Persona no insertada con éxito", Toast.LENGTH_LONG).show(); } }); return null; } } }
Hola soy Alex Céspedes fundador de ANDROFAST, programo algunas cosas por diversión, me gusta aprender cosas nuevas y estoy pendiente de todo lo que tenga que ver con tecnología. Este blog lo cree para todas las personas que tengan dificultades en la programación, para ser sincero nunca fui bueno y reprobé algunos cursos de programación, pero mis ganas de aprender pudieron más. SI YO PUEDO TU PUEDES ANIMO!
NO ESTA CODIGO
donde dice link de descarga has clic ahí, luego podrás descargarlo de Google drive
esta dañado
Eres grande bro
Ola muchas gracias por los tutoriales de casualidad no tendras un ejemplo de login php-android de ejemplo de antemano gracias!1
de pana haces un tutorial donde solo explicas la mitad..?
que ridiculo.
ok que tenga buen dia.
Hola quisiera saber porque no me inserta los datos en la base de datos ya que al principio si me jalo y después ya no
Detalle su problema sr, los próximos comentarios como estos simplemente los ignoraremos.
Pingback: Listar usuario php mysql en Android | ANDROFAST
Pingback: Android Studio Php Mysql Login - Login Portal