Foros del Web » Programando para Internet » Android »

Conexión a Base de datos Mysql

Estas en el tema de Conexión a Base de datos Mysql en el foro de Android en Foros del Web. Hola, por favor alguien podría decirme como se configuran los parametros para hacer consultas a la base de datos Mysql. He puesto esto pero no ...
  #1 (permalink)  
Antiguo 20/11/2015, 12:06
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 8 años, 1 mes
Puntos: 10
Conexión a Base de datos Mysql

Hola, por favor alguien podría decirme como se configuran los parametros para hacer consultas a la base de datos Mysql. He puesto esto pero no me funciona.

/**
* Constantes
*/
public class Constantes {

/**
* Puerto que utilizas para la conexión.
* Dejalo en blanco si no has configurado esta característica.
*/
private static final String PUERTO_HOST = ":3306";

/**
* Dirección IP de genymotion o AVD
*/
private static final String IP = "http://93.174.0.0";

/**
* URLs del Web Service
*/
public static final String GET_URL = "http://www.midominio.es/web/obtener_gastos.php";
public static final String INSERT_URL = "http://www.midominio.es/web/insertar_gasto.php";

/**
* Campos de las respuestas Json
*/
public static final String ID_GASTO = "idGasto";
public static final String ESTADO = "estado";
public static final String GASTOS = "gastos";
public static final String MENSAJE = "mensaje";

/**
* Códigos del campo {@link ESTADO}
*/
public static final String SUCCESS = "1";
public static final String FAILED = "2";

/**
* Tipo de cuenta para la sincronización
*/
public static final String ACCOUNT_TYPE = "com.herprogramacion.crunch_expenses.account";


}


Gracias
  #2 (permalink)  
Antiguo 25/11/2015, 15:22
Avatar de cocu3  
Fecha de Ingreso: diciembre-2007
Mensajes: 235
Antigüedad: 12 años, 10 meses
Puntos: 6
Respuesta: Conexión a Base de datos Mysql

__________________
editor de fotos
  #3 (permalink)  
Antiguo 01/12/2015, 04:25
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 8 años, 1 mes
Puntos: 10
Respuesta: Conexión a Base de datos Mysql

Buenos días, que me quieres decir ?

Lo que quiero es saber cómo sincronizar una base de datos local en Sqlite con una base de datos Mysql que está en un servidor.

Gracias

Última edición por satjaen; 01/12/2015 a las 12:28
  #4 (permalink)  
Antiguo 06/12/2015, 13:47
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 8 años, 1 mes
Puntos: 10
Respuesta: Conexión a Base de datos Mysql

Por favor alguien puede contestar. Si pruebo la la app en el servidor localhost de mi ordenador funciona bien pero no sé como configurado para hacerlo en el host de mi dominio. Gracias
  #5 (permalink)  
Antiguo 07/12/2015, 11:59
Avatar de cocu3  
Fecha de Ingreso: diciembre-2007
Mensajes: 235
Antigüedad: 12 años, 10 meses
Puntos: 6
Respuesta: Conexión a Base de datos Mysql

hola,
es probable que tengas que dar permisos en el servidor mysql a la aplicación que tengas montada,
ya que el servidor de mysql en localhost no pone estas trabas,

saludos
__________________
editor de fotos
  #6 (permalink)  
Antiguo 07/12/2015, 12:03
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 17 años, 11 meses
Puntos: 16
Respuesta: Conexión a Base de datos Mysql

mediante un webservice XML o JSON puedes realizar lo que necesitas.

Saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #7 (permalink)  
Antiguo 07/12/2015, 12:07
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 8 años, 1 mes
Puntos: 10
Respuesta: Conexión a Base de datos Mysql

Muchas gracias a los dos por contestar pero llevo mucho tiempo probando y no me llega a funcionar. Conocéis algún ejemplo que me pueda ayudar ?
Gracias
  #8 (permalink)  
Antiguo 07/12/2015, 12:12
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 17 años, 11 meses
Puntos: 16
Respuesta: Conexión a Base de datos Mysql

pero en que tienes problemas? en crear el webservice? o en consumirlo?
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #9 (permalink)  
Antiguo 07/12/2015, 12:29
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 8 años, 1 mes
Puntos: 10
Respuesta: Conexión a Base de datos Mysql

El problema esta en que no sé como se hacen las configuraciones para hacer la conexión a la base de datos Mysql. Por ejemplo tengo este código que funciona bien en localhost y cuando le pongo la url del domino que es donde tengo los archivos php ya no funciona.

Esta es la conexión a localhost que funciona bien:

Código Java:
Ver original
  1. EditText user;
  2.     EditText pass;
  3.     Button blogin;
  4.     TextView registrar;
  5.     Httppostaux post;
  6.     String IP_Server="192.168.1.0";//IP DE NUESTRO PC
  7.     String URL_connect="http://"+IP_Server+"/droidlogin/acces.php";

Pero cuando cambio la url de mi dominio ya no funciona:
Código Java:
Ver original
  1. EditText user;
  2.     EditText pass;
  3.     Button blogin;
  4.     TextView registrar;
  5.     Httppostaux post;
  6.     String IP_Server="";//IP DE NUESTRO PC
  7.     String URL_connect="http://www.midominio.es/droidlogin/acces.php";//ruta en donde estan nuestros archivos


Gracias
  #10 (permalink)  
Antiguo 07/12/2015, 12:41
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 17 años, 11 meses
Puntos: 16
Respuesta: Conexión a Base de datos Mysql

estas en un emulador? si desde chrome del dispositivo entras a esa url la carga?
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #11 (permalink)  
Antiguo 07/12/2015, 13:15
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 8 años, 1 mes
Puntos: 10
Respuesta: Conexión a Base de datos Mysql

En el emulador funciona bien en la base de datos del localhost. Cuando pongo la url en el navegador me da resultado. Ese resultado en la app significa que el usuario y la contraseña que ingreso no son las correctas.:

http://www.midominio.es/droidlogin/acces.php
Código HTML:
Ver original
  1. [{"logstatus":"0"}]

acces.php

Código PHP:
<?php

/*LOGIN*/

$usuario $_POST['usuario'];
$passw $_POST['password'];


require_once 
'funciones_bd.php';
$db = new funciones_BD();

    if(
$db->login($usuario,$passw)){

    
$resultado[]=array("logstatus"=>"0");
    }else{
    
$resultado[]=array("logstatus"=>"1");
    }

echo 
json_encode($resultado);




?>
  #12 (permalink)  
Antiguo 07/12/2015, 13:29
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 17 años, 11 meses
Puntos: 16
Respuesta: Conexión a Base de datos Mysql

muy posiblemente el problema esté en como mandas los datos, porque hasta ahí no veo nada raro. sería interesante pudieses escribir un log en el servidor con los datos de cada llamado para verificar que la información esté llegando correctamente.
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #13 (permalink)  
Antiguo 07/12/2015, 13:51
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 8 años, 1 mes
Puntos: 10
Respuesta: Conexión a Base de datos Mysql

ok.

Código HTML:
Ver original
  1. 12-07 21:46:18.754 2387-2442/test.Droidlogin E/log_tag: Error in http connection java.lang.IllegalArgumentException: Host name may not be null
  2. 12-07 21:46:19.781 2387-2442/test.Droidlogin E/JSON: ERROR
  3. 12-07 21:46:19.990 2387-2387/test.Droidlogin E/onPostExecute=: err
  4. 12-07 21:46:20.263 2387-2394/test.Droidlogin W/art: Suspending all threads took: 212.480ms
  5. 12-07 21:46:20.615 2387-2394/test.Droidlogin W/art: Suspending all threads took: 5.939ms
  6. 12-07 21:46:21.981 2387-2387/test.Droidlogin I/Choreographer: Skipped 130 frames!  The application may be doing too much work on its main thread.
  7. 12-07 21:46:40.783 2387-2394/test.Droidlogin W/art: Suspending all threads took: 70.790ms


Siempre me dice: "Error:Nombre de usuario o password incorrectos"


Código Java:
Ver original
  1. import java.util.ArrayList;
  2. import org.apache.http.NameValuePair;
  3. import org.apache.http.message.BasicNameValuePair;
  4. import org.json.JSONArray;
  5. import org.json.JSONException;
  6. import org.json.JSONObject;
  7. import test.Droidlogin.library.Httppostaux;
  8. import android.app.Activity;
  9. import android.app.ProgressDialog;
  10. import android.content.Context;
  11. import android.content.Intent;
  12. import android.net.Uri;
  13. import android.os.AsyncTask;
  14. import android.os.Bundle;
  15. import android.os.SystemClock;
  16. import android.os.Vibrator;
  17. import android.util.Log;
  18. import android.view.View;
  19. import android.widget.Button;
  20. import android.widget.EditText;
  21. import android.widget.TextView;
  22. import android.widget.Toast;
  23.  
  24. public class Login extends Activity {
  25.     /** Called when the activity is first created. */
  26.    
  27.     EditText user;
  28.     EditText pass;
  29.     Button blogin;
  30.     TextView registrar;
  31.     Httppostaux post;
  32.     String IP_Server="";//IP DE NUESTRO PC
  33.     String URL_connect="http://"+IP_Server+"www.midomnio.es/droidlogin/acces.php";//ruta en donde estan nuestros archivos
  34.  
  35.     boolean result_back;
  36.     private ProgressDialog pDialog;
  37.    
  38.     @Override
  39.     public void onCreate(Bundle savedInstanceState) {
  40.  
  41.         super.onCreate(savedInstanceState);
  42.         setContentView(R.layout.main);
  43.         post=new Httppostaux();
  44.        
  45.         user= (EditText) findViewById(R.id.edusuario);
  46.         pass= (EditText) findViewById(R.id.edpassword);
  47.         blogin= (Button) findViewById(R.id.Blogin);
  48.         registrar=(TextView) findViewById(R.id.link_to_register);
  49.                    
  50.         //Login button action
  51.         blogin.setOnClickListener(new View.OnClickListener(){
  52.        
  53.             public void onClick(View view){
  54.                  
  55.                 //Extreamos datos de los EditText
  56.                 String usuario=user.getText().toString();
  57.                 String passw=pass.getText().toString();
  58.                
  59.                 //verificamos si estan en blanco
  60.                 if( checklogindata( usuario , passw )==true){
  61.  
  62.                     //si pasamos esa validacion ejecutamos el asynctask pasando el usuario y clave como parametros
  63.                    
  64.                 new asynclogin().execute(usuario,passw);                               
  65.                                
  66.                
  67.                 }else{
  68.                     //si detecto un error en la primera validacion vibrar y mostrar un Toast con un mensaje de error.
  69.                     err_login();
  70.                 }
  71.                
  72.             }
  73.                                                             });
  74.        
  75.         registrar.setOnClickListener(new View.OnClickListener(){
  76.            
  77.             public void onClick(View view){
  78.                
  79.                 //Abre el navegador al formulario adduser.html
  80.                 String url = "http://"+IP_Server+"/www.midomnio.es/droidlogin/adduser.html";
  81.                 Intent i = new Intent(Intent.ACTION_VIEW);
  82.                 i.setData(Uri.parse(url));
  83.                 startActivity(i);              
  84.                                         }          
  85.                                                                 });
  86.                
  87.     }
  88.    
  89.     //vibra y muestra un Toast
  90.     public void err_login(){
  91.         Vibrator vibrator =(Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
  92.         vibrator.vibrate(200);
  93.         Toast toast1 = Toast.makeText(getApplicationContext(),"Error:Nombre de usuario o password incorrectos", Toast.LENGTH_SHORT);
  94.         toast1.show();     
  95.     }
  96.    
  97.    
  98.     /*Valida el estado del logueo solamente necesita como parametros el usuario y passw*/
  99.     public boolean loginstatus(String username ,String password ) {
  100.         int logstatus=-1;
  101.        
  102.         /*Creamos un ArrayList del tipo nombre valor para agregar los datos recibidos por los parametros anteriores
  103.          * y enviarlo mediante POST a nuestro sistema para relizar la validacion*/
  104.         ArrayList<NameValuePair> postparameters2send= new ArrayList<NameValuePair>();
  105.            
  106.                     postparameters2send.add(new BasicNameValuePair("usuario",username));
  107.                     postparameters2send.add(new BasicNameValuePair("password",password));
  108.  
  109.            //realizamos una peticion y como respuesta obtenes un array JSON
  110.             JSONArray jdata=post.getserverdata(postparameters2send, URL_connect);
  111.  
  112.             /*como estamos trabajando de manera local el ida y vuelta sera casi inmediato
  113.              * para darle un poco realismo decimos que el proceso se pare por unos segundos para poder
  114.              * observar el progressdialog
  115.              * la podemos eliminar si queremos
  116.              */
  117.             SystemClock.sleep(950);
  118.                    
  119.             //si lo que obtuvimos no es null
  120.                 if (jdata!=null && jdata.length() > 0){
  121.  
  122.                     JSONObject json_data; //creamos un objeto JSON
  123.                     try {
  124.                         json_data = jdata.getJSONObject(0); //leemos el primer segmento en nuestro caso el unico
  125.                          logstatus=json_data.getInt("logstatus");//accedemos al valor
  126.                          Log.e("loginstatus","logstatus= "+logstatus);//muestro por log que obtuvimos
  127.                     } catch (JSONException e) {
  128.                         // TODO Auto-generated catch block
  129.                         e.printStackTrace();
  130.                     }                  
  131.                      
  132.                     //validamos el valor obtenido
  133.                      if (logstatus==0){// [{"logstatus":"0"}]
  134.                          Log.e("loginstatus ", "invalido");
  135.                          return false;
  136.                      }
  137.                      else{// [{"logstatus":"1"}]
  138.                          Log.e("loginstatus ", "valido");
  139.                          return true;
  140.                      }
  141.                      
  142.               }else{    //json obtenido invalido verificar parte WEB.
  143.                          Log.e("JSON  ", "ERROR");
  144.                         return false;
  145.               }
  146.        
  147.     }
  148.    
  149.          
  150.     //validamos si no hay ningun campo en blanco
  151.     public boolean checklogindata(String username ,String password ){
  152.        
  153.     if  (username.equals("") || password.equals("")){
  154.         Log.e("Login ui", "checklogindata user or pass error");
  155.     return false;
  156.    
  157.     }else{
  158.        
  159.         return true;
  160.     }
  161.    
  162. }          
  163.    
  164. /*      CLASE ASYNCTASK
  165.  *
  166.  * usaremos esta para poder mostrar el dialogo de progreso mientras enviamos y obtenemos los datos
  167.  * podria hacerse lo mismo sin usar esto pero si el tiempo de respuesta es demasiado lo que podria ocurrir    
  168.  * si la conexion es lenta o el servidor tarda en responder la aplicacion sera inestable.
  169.  * ademas observariamos el mensaje de que la app no responde.    
  170.  */
  171.    
  172.     class asynclogin extends AsyncTask< String, String, String > {
  173.          
  174.         String user,pass;
  175.         protected void onPreExecute() {
  176.             //para el progress dialog
  177.             pDialog = new ProgressDialog(Login.this);
  178.             pDialog.setMessage("Autenticando....");
  179.             pDialog.setIndeterminate(false);
  180.             pDialog.setCancelable(false);
  181.             pDialog.show();
  182.         }
  183.  
  184.         protected String doInBackground(String... params) {
  185.             //obtnemos usr y pass
  186.             user=params[0];
  187.             pass=params[1];
  188.            
  189.             //enviamos y recibimos y analizamos los datos en segundo plano.
  190.             if (loginstatus(user,pass)==true){                     
  191.                 return "ok"; //login valido
  192.             }else{         
  193.                 return "err"; //login invalido                   
  194.             }
  195.            
  196.         }
  197.        
  198.         /*Una vez terminado doInBackground segun lo que halla ocurrido
  199.         pasamos a la sig. activity
  200.         o mostramos error*/
  201.         protected void onPostExecute(String result) {
  202.  
  203.            pDialog.dismiss();//ocultamos progess dialog.
  204.            Log.e("onPostExecute=",""+result);
  205.            
  206.            if (result.equals("ok")){
  207.  
  208.                 Intent i=new Intent(Login.this, HiScreen.class);
  209.                 i.putExtra("user",user);
  210.                 startActivity(i);
  211.                
  212.             }else{
  213.                 err_login();
  214.             }
  215.            
  216.                                                     }
  217.        
  218.         }
  219.  
  220.     }
  221.    
  222.  
  223.    
  224.      
  225.     //-----------------------------------------------------------------------
  #14 (permalink)  
Antiguo 02/06/2016, 09:55
 
Fecha de Ingreso: junio-2015
Mensajes: 38
Antigüedad: 5 años, 4 meses
Puntos: 0
Respuesta: Conexión a Base de datos Mysql

Tal vez ya solucionaste tu problemas, pero esto me recuerda a mis primero días en android me salia los mismo errores y por mas que apuntaba bien mis ip los errores seguían y eso se debía a que no había configurado mi Manifest y darle el permiso a Internet jejeje

<uses-permission
android:name="android.permission.INTERNET" />

Etiquetas: mysql
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 20:47.