Spanish consultar bases de datos mysql

jjmairena

Member
Licensed User
Longtime User
hola gente necesito que me ayuden con algo que me esta volviendo loco... necesito consultar una base de datos mysql y php desde mi movil ejemplo verificar en la base de datos el numero de cedu2la de una persona y que me lo muestre en un txt.text... se les agradece la ayuda.
 

JesusMujico

Member
Licensed User
Longtime User
Espero te sea útil....

Hola,
Por si te sirve de algo te adjunto un fragmento de código que creo que contiene lo fundamental para realizar una consulta a una base de datos MySQL mediante PHP.
Como estoy empezando en esto supongo que puede haber algún error pero al menos te dará una idea de por donde van los tiros :)

B4X:
Sub Process_Globals
   Dim hc As HttpClient
   Dim Camp1, Camp2,Camp3 As String   
End Sub

Sub Activity_Create(FirstTime As Boolean)
   If FirstTime Then
      hc.Initialize("hc")
   End If
End Sub

Sub ejecutar_query()
   Dim Query,TascaId As String 'Query es la cadena que contiene la consulta y
                        'TascaId se utiliza para identificar la solicitud
                        'ya que el proceso se realiza de forma asincrona.
                        'La respuesta en hc_responsesuccess incluira este valor
                        'permitiendonos saber a que consulta corresponde.
   Query ="SELECT tabla.Camp1, tabla.Camp2, tabla.Camp3 FROM tabla "
   Dim Consulta As HttpRequest
   Consulta.InitializePost2("http://192.168.1.100/codigo.php",Query.GetBytes("UTF8"))
   hc.Execute(Consulta,TascaId)
End Sub

Sub hc_responseerror(Response As HttpResponse,Reason As String, Statuscode As Int,TascaId As Int)
    'Colocar aqui control de errores en la respuesta
End Sub

Sub hc_responsesuccess(Response As HttpResponse,TascaId As Int)
   Dim Resp As String
   Dim Parser As JSONParser
   Dim Registres As List
   Resp = Response.GetString("UTF8") 'La respuesta contiene un formato JSON
   Parser.Initialize(Resp) 'que analizamos con este JSONParser
   Registres = Parser.NextArray 'En la lista Registres cargamos el array resultante
   For i = 0 To Registres.Size - 1 'Recorremos la lista y cargamos el mapa m con los pares de valores
      Dim m As Map
      m = Registres.Get(i)
      Camp1 = m.Get("Camp1")  'Los pares key / value del map corresponden al nombre del campo de la tabla
      Camp2 = m.Get("Camp2")  'y al contenido del mismo.
      Camp3 = m.Get("Camp3")  
   Next 
   Response.Release      
End Sub

Este podría ser un ejemplo del código php:

PHP:
<?
$databasehost = "localhost";
$databasename = "test";
$databaseusername ="usuario";
$databasepassword = "pwd";

$con = mysql_connect($databasehost,$databaseusername,$databasepassword) OR die(mysql_error());
mysql_select_db($databasename) OR die(mysql_error());
$query = file_get_contents("php://input"); 

mysql_set_charset('utf8');
$sth = mysql_query($query);

If (mysql_errno()) { 
   echo $query.'\n';
       echo mysql_error(); 
}
Else
{
    $rows = Array();
    While($r = mysql_fetch_assoc($sth)) {
        $rows[] = ($r);
    }
print json_encode($rows);
}
?>

Recuerda incluir las librerías HTTP y JSON

¡Olvidaba comentar que lo anterior está extraído del magnífico tutorial de Erel para conectarse a MySQL ! :)


http://www.b4x.com/forum/basic4android-getting-started-tutorials/8339-connect-android-mysql-database-tutorial.html
 
Last edited:

JAVIERGARCIA

Member
Licensed User
Longtime User
Hola, (novatillo de nuevo por aquí);
Antes de pedir ayuda, ya doy vueltas y vueltas.

Un problema,,, :
Utilizo el mismo código que en el ejemplo de Erel para acceder a una base (igual que la del ejemplo).
Si no modifico nada,,lo instalo en el móvil y perfecto. Veo esos campos sin problema.
Ahora llevo la base de datos a mi servidor (en internet); accesible perfectamente desde phpmyadmin, navicat o lo que sea.
Cambio tan solo en el código la dirección donde ha de apuntar,,, y me da el fallo:
java.lang.runtimeexcetion:
JSON Array excepted

no tengo en la base ningún carácter ajeno (eñes,, símbolos,,,nada de nada)
o por defecto, alguien tiene por ahí esa misma base de datos que utiliza EREL??,
A ver si será un problema de UTF8 o MYIsam, ? no se

que puede ser?
Gracias
 
Last edited:

TheFalcon

Active Member
Licensed User
Longtime User
Buenas, ya que este tema no esta cerrado comento aquí ya que veo que algunos tenéis problemas parecidos, Yo uso MYSQL pero con un ejemplo distinto al de EREL, el caso es que cuando guardo datos ne MYSQL me los guarda sin problemas pero me suelta el error JSON array expect.

Lo raro es que guarda sin problemas pero me suelta ese error. Alguien sabe a que puede ser debido?, estoy trabajando en base de datos local con WAMP.
 

Attachments

  • Sin título.png
    Sin título.png
    25.3 KB · Views: 308

TheFalcon

Active Member
Licensed User
Longtime User
Buenas, e encontrado el problema así que lo comento por si a alguien mas le pasaba, me ocurría por que sin darme cuenta usaba la misma Tarea en 2 Query distintos. hc.Execute(req, 3) en vez de 3 usaba 1 y ya la usaba en otro sitio.
 
Top