0% encontró este documento útil (0 votos)
122 vistas9 páginas

Guion Video Tutorial

Este documento describe cómo conectar una aplicación Android a una base de datos MySQL a través de PHP y JSON. Se explica cómo crear servicios web en PHP para realizar consultas y registros en la base de datos y devolver los resultados en formato JSON. También se detalla cómo programar una aplicación Android para acceder a estos servicios web, mostrar y capturar datos del usuario.

Cargado por

baztyann
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
122 vistas9 páginas

Guion Video Tutorial

Este documento describe cómo conectar una aplicación Android a una base de datos MySQL a través de PHP y JSON. Se explica cómo crear servicios web en PHP para realizar consultas y registros en la base de datos y devolver los resultados en formato JSON. También se detalla cómo programar una aplicación Android para acceder a estos servicios web, mostrar y capturar datos del usuario.

Cargado por

baztyann
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Hoy vamos a aprender como conectar nuestra aplicacion android a una base de datos mysql a

travs de PHP y JSON



Para realizar este taller se debe tener instalado los siguientes programas:
- wampServer
- Eclipse ADT Bundle + Android SDK
Qu haremos?
En este video tutorial vamos a crear una aplicacion para dispositivos con sistema operativo
android desde la que ser posible consultar y registrar informacin de usuarios en una base de
datos en internet
Cmo lo haremos?
Esta prctica se separa en dos partes:
- La creacin del servicio web en PHP
- Programacin de la aplicacin para Android

Primera parte:
- Creacin del servicio web:
Nuestro servicio web consistir en una serie de scripts en PHP que se encargaran de ser
intermediarios entre la aplicacin en Android y el servidor de base de datos en MYSQL. A
estos scripts ser posible hacerles consultas usando el mtodo GET del protocolo HTTP, a lo
que estos contestaran con arreglos JSON, que contendrn la informacin requerida.
1. Paso 1: Crear base datos en MySQL llamada dbprueba
2. Paso 2: Crear tabla llamada tablaprueba con los suigientes campos:
Cedula ----- bigint ---- unique key
Nombre ----text--- utf8
Apellido ----text--- utf8
Direccin ----text--- utf8
Telfono ----text--- utf8


3. Paso 3: Programar scripts en PHP
[Link]
Este script contiene dos funciones para ejecutar comandos SQL en la base de
datos
Codigo PHP:
<?php
header( 'Content-Type: text/html;charset=utf-8' );


function ejecutarSQLCommand($commando){

$mysqli = new mysqli("localhost", "root", "",
"dbprueba");

/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli-
>connect_error);
exit();
}

if ( $mysqli->multi_query($commando)) {
if ($resultset = $mysqli->store_result()) {
while ($row = $resultset-
>fetch_array(MYSQLI_BOTH)) {

}
$resultset->free();
}


}



$mysqli->close();
}

function getSQLResultSet($commando){


$mysqli = new mysqli("localhost", "root", "",
"dbprueba");

/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli-
>connect_error);
exit();
}

if ( $mysqli->multi_query($commando)) {
return $mysqli->store_result();




}



$mysqli->close();
}


?>

[Link]
Este script se encargara de registrar o modificar informacin en la tabla
anteriormente creada. El script recibir los parmetros a travs de una
peticin HTTP GET, ejecutar el comando y devolver un ok si la operacin
fue exitosa, de lo contrario enviar un mensaje de error

Cdigo PHP:

<?php include ('[Link]');
$cc=$_GET['cc'];
$nombre=$_GET['nombre'];
$apellido=$_GET['apellido'];
$direccion=$_GET['direccion'];
$telefono=$_GET['telefono'];


ejecutarSQLCommand("INSERT INTO `tablaprueba` (
`cc` ,
`nombre` ,
`apellido` ,
`direccion`,
`telefono`
)
VALUES (
'$cc' ,
'$nombre' ,
'$apellido' ,
'$direccion',
'$telefono')

ON DUPLICATE KEY UPDATE `nombre`= '$nombre',
`apellido`='$apellido' ,
`direccion`='$direccion',
`telefono`='$telefono'
;");

?>

[Link]
Este script recibir como parmetro el nmero de cedula y devolver un
arreglo de tipo JSON que contendr el resultado de la consulta
Cdigo PHP:
<?php
include('[Link]');
$cc=$_GET['cc'];
if ($resultset = getSQLResultSet("SELECT
cc,nombre,apellido,direccion,telefono
FROM `tablaprueba` where cc='$cc'")) {

while ($row = $resultset-
>fetch_array(MYSQLI_NUM)) {
echo json_encode($row);

}

}

?>

Segunda parte:
- Programacin de la aplicacin para Android
La aplicacin que programaremos a continuacin acceder los scripts anteriormente creados
y mostrar los datos en una interfaz amigable para el usuario final
1. Paso 1: Crear un nuevo proyecto de android en eclipse
2. Paso 2: Copiar el siguiente xml y pegarlo en el xml de la actividad principal


<RelativeLayout
xmlns:android="[Link]
xmlns:tools="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="30dp"
android:layout_marginTop="34dp"
android:text="Cedula:" />

<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/textView3"
android:layout_below="@+id/textView3"
android:layout_marginTop="25dp"
android:text="Direccion:" />

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginTop="26dp"
android:text="Nombre:" />

<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/textView2"
android:layout_below="@+id/textView2"
android:layout_marginTop="29dp"
android:text="Apellidos:" />

<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/textView4"
android:layout_below="@+id/textView4"
android:layout_marginTop="31dp"
android:text="Telefono:" />

<EditText
android:id="@+id/editTextCedula"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView1"
android:layout_alignParentRight="true"
android:ems="10"
android:inputType="textPersonName" />

<EditText
android:id="@+id/editTextNombre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView2"
android:layout_alignParentRight="true"
android:ems="10"
android:inputType="textPersonName" />

<EditText
android:id="@+id/editTextApellido"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/textView4"
android:layout_alignParentRight="true"
android:ems="10"
android:inputType="textPersonName" >

<requestFocus />
</EditText>

<EditText
android:id="@+id/editTextDireccion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/textView5"
android:layout_alignParentRight="true"
android:ems="10" />

<EditText
android:id="@+id/editTextTelefono"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView5"
android:layout_alignParentRight="true"
android:ems="10"
android:inputType="phone" />

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button1"
android:layout_alignBottom="@+id/button1"
android:layout_marginLeft="16dp"
android:layout_toRightOf="@+id/button1"
android:text="Consultar" />

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView5"
android:layout_marginLeft="27dp"
android:layout_marginTop="28dp"
android:text="Enviar" />

</RelativeLayout>

3. Paso 3: Aadir permiso de internet en el Manifest.
4. Paso 4: Agregar el archivo JSON [Link] al proyecto.
5. Paso 5: Agregar la siguiente funcin a la actividad principal

public String httpGetData(String mURL) {
String response="";
mURL=[Link](" ", "%20");
Log.i("LocAndroid Response HTTP Threas","Ejecutando get 0:
"+mURL);
HttpClient httpclient = new DefaultHttpClient();

Log.i("LocAndroid Response HTTP Thread","Ejecutando get 1");
HttpGet httppost = new HttpGet(mURL);
Log.i("LocAndroid Response HTTP Thread","Ejecutando get 2");
try {


Log.i("LocAndroid Response HTTP","Ejecutando get");
// Execute HTTP Post Request
ResponseHandler<String> responseHandler=new
BasicResponseHandler();
response = [Link](httppost,responseHandler);
Log.i("LocAndroid Response HTTP",response);
} catch (ClientProtocolException e) {
Log.i("LocAndroid Response HTTP ERROR 1",[Link]());
// TODO Auto-generated catch block
} catch (IOException e) {

Log.i("LocAndroid Response HTTP ERROR 2",[Link]());
// TODO Auto-generated catch block
}
return response;

}


6. Paso 6: Agregar el siguiente cdigo al OnCreate()

Button b1=(Button)findViewById([Link].button1);
final EditText cc=(EditText)findViewById([Link]);
final EditText nombre=(EditText)findViewById([Link]);
final EditText apellido=(EditText)findViewById([Link]);
final EditText direccion=(EditText)findViewById([Link]);
final EditText telefono=(EditText)findViewById([Link]);

[Link](new [Link]() {

@SuppressLint("ShowToast") @Override
public void onClick(View v) {
// TODO Auto-generated method stub
try{

httpGetData("[Link]
)+

"&nombre="+[Link]()+"&apellido="+[Link]()+

"&direccion="+[Link]()+"&telefono="+[Link]());
[Link](getApplicationContext(), "El dato
ha sido enviado correctamente", 1000).show();
}catch(Exception e){
[Link](getApplicationContext(), "Error
en el envio de la informacion, verifique su conexion a internet y vuelva a
intentarlo.", 1000).show();

}

}
});

[Link](new [Link]() {

@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
if(hasFocus==false){
JSONArray ja=null;
try {
String data;

data=httpGetData("[Link]
Text());
if([Link]()>1)
ja=new JSONArray(data);


} catch (JSONException e) {
// TODO Auto-generated catch block
[Link]();
[Link](getApplicationContext(),
"Error recuperando la informacion del servidor, verifique su conexion a internet
y vuelva a intentarlo.", 1000).show();

}
try{

[Link]([Link](1));
[Link]([Link](2));
[Link]([Link](3));
[Link]([Link](4));
} catch (Exception e) {

[Link]("");
[Link]("");
[Link]("");
[Link]("");
}
}
}
});

También podría gustarte