App inventor 2 en español
Cómo programar los teléfonos móviles con Android
mediante App inventor 2 - Juan Antonio Villalpando
--- PHP y MySQL en App Inventor 2 --
Volver al índice del tutorial de PHP y MySQL
____________________________
341.- App inventor y MySQL. Pasar MySQL a TinyBD y viceversa.
p341_mysql_php_tinybd.aia
- En el tutorial anterior vimos cómo podemos guardar y obtener información desde una base de datos MySQL con App Inventor y PHP.
- Una de las opciones del tutorial anterior era ver todo el contenido de la base de datos en un par de Etiquetas de App Inventor.
- Ahora vamos a obtener todo el contenido de la base de datos MySQL que se encuentra en un sitio remoto y la vamos a guardar en una base de datos TinyBD que está en nuestro móvil.
- También haremos lo contrario, es decir tomar todo el contenido del la TinyBD y subirlo a la base de datos remota MySQL.
- Recuerdo que esto es una aplicación de aprendizaje, he intentado que el código sea simple a costa de algunos fallos que el lector interesado puede correguir.
- Otra cosa importante, la base MySQL baja al móvil y se guarda en la TinyBD, pero en este código no contemplo la modificación en la TinyBD, las actualizaciones y la creación de nuevos registro se sigue haciendo directamente guardandolos en MySQL.
---------------------------------------------
- Para realizar este tutorial sería interesante que consultaras:
- 340B_appinventor_mysql.htm, que trata de vincular App Inventor con MySQL, es el tutorial anterior.
- 8N_archivo_TinyBD.htm, para pasar un archivo a TinyBD.
- 8M_copiar_TinyBD.htm, para copiar la TinyBD en un archivo.
- Aquí creamos la base de datos: 317_hosting_gratuito_3.htm
---------------------------------------------
- Ahora.
- Nos basaremos en el tutorial anterior: 340B_appinventor_mysql.htm
- He añadido varios Botones y he anulado esta línea (línea 75) en el código php, para que no escriba <br>
$en_csv .= "\n" ;
- Al pulsar el Botón de "Ver tabla" se obtendrá todos los datos de la tabla personas en MySQL. Estos datos se guardarán en el archivo personas.csv
- Además se insertarán en la TinyBD. La Etiqueta de cada elemento será un número creado secuencialmente por la variable t.
- [El contenido también se encuentra en la lista archivo_en_lista].
- Observaremos que la numeración del campo id de la base de datos es distinto a la numeración id de la TinyBD, ya que la id de ésta se crea secuencialmente mediante la variable t.
- Si leemos el tutorial 8M_copiar_TinyBD.htm, observaremos la manera de copiar el contenido de un archivo en la TinyBD.
- Una vez que tengamos la TinyBD ya podremos interactuar con ella. Mediante los Botones Siguiente y Anterior podemos ver cada registro.
- Este código no hace cambios con la TinyBD.
_________________
- Diseño.
- Cambiamos un poco el mismo Diseño que en el ejemplo: 340B_appinventor_mysql.htm
NOTA: Web1 está en Conectividad (no confundir con VisorWeb)
_________________
- Bloques.
- El archivo está en http://kio4.esy.es/basedatosmysql_bd_tinybd.php.
_________________
- Comentarios.
- Fíjate que ahora va al archivo http://kio4.esy.es/basedatosmysql_bd_tinybd.php?
- Al subir el contenido del
- Fíjate en el campo id, en MySQL si creas un registro y luego lo borras su id quedará vacía y no estarán todas las id completadas secuencialmente, en cambio en el código se fuerza a la que id sean secuenciales y completas.
_________________
- Archivo PHP.
En nuestro servidor web necesitaremos un archivo PHP, concretamente: basedatosmysql_bd_tinybd.php, que tome el valor de los datos y ejecute la orden correspondiente según el Botón pulsado.
Como bien digo, este archivo debe estar en nuestro servidor web, en mi caso: http://kio4.esy.es/basedatosmysql_bd_tinybd.php
basedatosmysql_bd_tinybd.php
|
<?php
// Juan A. Villalpando
// juana1991@yahoo.com
// kio4.com
////////////////////// Toma el contenido y lo guarda en el archivo personas.txt
$datos=$_POST;
$contenido=$datos['contenido'];
$archivo = 'personas.txt';
$auxi = fopen($archivo, 'w');
fwrite($auxi, $contenido);
fclose($auxi);
// echo $contenido;
//////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////// Borra el contenido de la tabla personas y vuelve a introducir todas las líneas
///////////////////// del archivo personas.txt en la tabla personas
// Juan Antonio Villalpando
// juana1991@yahoo.com
// http://kio4.com
error_reporting ( E_ALL ^ E_NOTICE ^ E_DEPRECATED );
// error_reporting ( 0 );
// 1.- IDENTIFICACION nombre de la base, del usuario, clave y servidor
$db_host="mysql.hostinger.es";
$db_name="u798509677_comun";
$db_login="u798509677_juan";
$db_pswd="contraseña";
$con = mysql_connect($db_host, $db_login, $db_pswd) or die(mysql_error());
mysql_set_charset("utf8");
// 2.- CONEXION A LA BASE DE DATOS
mysql_select_db($db_name) or die(mysql_error());
// 3.- BORRA EL CONTENIDO DE LA TABLA personas
$sql = "TRUNCATE TABLE personas";
$result = mysql_query( $sql, $con);
// 4.- Inserta línea a línea el archivo personas.txt en la tabla personas.
$archi = 'personas.txt';
$auxi = fopen($archi, 'r');
while(!feof($auxi)){
$line = fgets($auxi);
$porciones = explode(",", $line);
$id = $porciones[0];
$Nombre = $porciones[1];
$Edad = $porciones[2];
$Ciudad = $porciones[3];
$query="insert into personas (Nombre, Edad, Ciudad) values ('$Nombre','$Edad','$Ciudad')";
$result = mysql_query($query);
}
fclose($auxi);
mysql_close($con);
?> |
_________________
- Propuestas.
- Como dije al principio, este es un código de aprendizaje, propongo lo siguente.
1.- Crea una Screen 1 con un menú para poder entrar en la Screen2 que será "Guardar directamente en MySQL" y la Screen3 que será "Guardar en TinyBD y subir a MuSQL".
2.- Si estás en la Screen2 puedes trabajar con el código visto en 340B_appinventor_mysql.htm, es decir guardar y obtener los datos directamente en MySQL.
3.- Si estás en la Screen3, bajarás los datos desde MySQL a la TinyBD, como hemos visto en este tutorial. Se añadirán botones para guardar, borrar, ver registros en la TinyBD. Además se añadirá otro botón para subir toda la TinyBD a MySQL.
_______________________________
|