| 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.  _______________________________
 |