|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  Raspberry Pi Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  AutoIt (Programación) Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

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

____________________________

326A.- Crear una base de datos MiniWebDB en un archivo mediante PHP en un servidor web.

p326A_servidor_tinywebdb.aia

- La base de datos de App inventor MiniWebDB, está en un servidor remoto. Vamos a crearnos una base de datos para nuestra MiniWebDB.

- En internet hay varios tutoriales para construirla con Python. Nosotros la vamos a construir en un archivo y mediante PHP.

- Vamos a crear una sencilla aplicación para hacer las pruebas.

- Introducimos una Etiqueta y un Valor a Guardar. Pulsamos el botón "Pulsa para Guardar", se guardarán esos valores en nuestra MiniWebDB.

- Introducimos una Etiqueta. Pulsamos el botón "Pulsa para Ver", obtendremos los datos guardados (Etiqueta y Valor).

__________________________________________

- Diseño.

- Las MiniWebDB de App inventor suelen utilizar este servidor: http://appinvtinywebdb.appspot.com

- En nuestro caso construiremos y utilizaremos este: http://kio4.esy.es/mi_tinywebdb.php

- Escribimos esa dirección en URLDelServicio: http://kio4.esy.es/mi_tinywebdb.php

__________________________________________

- Bloques.

__________________________________________

1.- Código PHP.

mi_tinywebdb.php
 <?php
  // Juan Antonio Villalpando
  // http://kio4.com/appinventor/326A_crear_miniwebDB.htm
  // http://kio4.esy.es/mi_tinywebdb.htm
  
$recibe_post = $_SERVER["REQUEST_URI"];
$etiqueta = $_POST['tag'];
$archivo = 'mi_tinywebdb.htm';

if (!file_exists($archivo)) {$handle = fopen($archivo, 'w');}

 if(strpos($recibe_post,'storeavalue')){
     ///////////////////////////////////////////////////////////////////////////////////////////////////
     // GUARDAR ETIQUETA Y VALOR.
     
$valorAGuardar = $_POST['value'];
$linea = $etiqueta.":".$valorAGuardar.":<br>\n";
  
$auxi = fopen($archivo, 'a'); // Añade $linea al archivo mi_tinywebdb.htm 
fwrite($auxi, $linea);

} else {
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    // OBTENER EL VALOR DE LA ETIQUETA.

// Busca en el archivo "mi_tinywebdb.htm" el Valor correspondiente a la Etiqueta pedida.
$auxi = fopen($archivo, 'r');
$existe = ""; 

while(!feof($auxi)){
    $linea = fgets($auxi);
    $campos = explode(":", $linea);

    if ($campos[0] == $etiqueta) {
        $valor =$campos[1];
        $existe ="si";
    }
}

// Envía el resultado.
            if ($existe == "si"){ 

            // Envia el valor obtenido.
            $resultado = array("VALUE", $etiqueta, $valor);    

             } else { 
             
            // Envia "No_existe" esa Etiqueta.
            $resultado = array("VALUE", $etiqueta, "No_existe");    
            
             }
             
            $resultado_en_JSON = json_encode($resultado);
            echo $resultado_en_JSON;

             }
 
fclose($auxi);
?>

__________________________________________

- Comentarios.

- Las Etiquetas y los Valores se guardan en el archivo mi_tinywebdb.htm.

- Lo he creado .htm, para que en cualquier momento podamos consultar fácilmente su contenido: http://kio4.esy.es/mi_tinywebdb.htm

- Cuando la aplicación envía una petición, según sea storeavalue querrá guardar u obtener la información.

- Los datos vienen en las variables $_POST['tag']; y $_POST['value'];

- Si la quieres GUARDAR ETIQUETA Y VALOR, escribe esto en el archivo: $linea = $etiqueta.":".$valorAGuardar.":<br>\r\n";

- Quedará así: juan antonio:"1234 5678": <br>

- Fíjate que el separador de campo son los dos puntos :, tú puedes poner otro.

------------------------------------------

- Si quieres OBTENER EL VALOR DE LA ETIQUETA, busca en todo el archivo la etiqueta requerida.

- Si existe, envía $resultado = array("VALUE", $etiqueta, $valor);
- Si no existe, envía $resultado = array("VALUE", $etiqueta, "No_existe");

- Para que App inventor pueda interpretar los datos enviados, se debe codificar y mandar formato JSON.

$resultado_en_JSON = json_encode($resultado);

- Se envía mediante el echo.

echo $resultado_en_JSON;

------------------------------------------

- Según introducimos valores, podemos ver cómo se almacenan entrando en la dirección donde está el archivo de nuestra base de datos:

http://kio4.esy.es/mi_tinywebdb.htm

-----------------------------

- Si envía una etiqueta repetida se volverá a guardar, por ejemplo:

- Cuando se pida el Valor de esa Etiqueta, se obtendrá el último Valor guardado.

__________________________________________
__________________________________________
__________________________________________

2.- Mejora del Código PHP.

- Recuerdas que si quieres poner este, debes cambiar el URLDelServicio: http://kio4.esy.es/mi_tinywebdb_v2.php

- Escribimos esa dirección en URLDelServicio: http://kio4.esy.es/mi_tinywebdb_v2.php

- Con este código evitamos que se guarden etiquetas repetidas.

- En el código PHP he cambiado el nombre del archivo de la base de datos, ahora es:

$archivo = 'mi_tinywebdb_v2.htm';

http://kio4.esy.es/mi_tinywebdb_v2.htm

mi_tinywebdb_v2.php
 <?php
  // Juan Antonio Villalpando
  // http://kio4.com/appinventor/326A_crear_miniwebDB.htm
  // http://kio4.esy.es/mi_tinywebdb_v2.htm
  
$recibe_post = $_SERVER["REQUEST_URI"];
$etiqueta = $_POST['tag'];
$archivo = 'mi_tinywebdb_v2.htm';

if (!file_exists($archivo)) {$handle = fopen($archivo, 'w');}

 if(strpos($recibe_post,'storeavalue')){

                                    //////////////////////////////// Si ya existe esa Etiqueta, la BORRA.
                                    $arc = file($archivo);
                                    $auxi = fopen($archivo,"w");

                                    foreach($arc as $linea)
                                    { 
                                    $campos = explode(":", $linea);
                                    if ($campos[0] != $etiqueta) {
                                            fputs($auxi, $linea);
                                    }
                                    }
                                    fclose($auxi);
                                    /////////////////////////////////////////////////////////////////////
                                                                    
      ///////////////////////////////////////////////////////////////////////////////////////////////////
     // GUARDAR ETIQUETA Y VALOR.
                                                                    
$valorAGuardar = $_POST['value'];
$linea = $etiqueta.":".$valorAGuardar.":<br>\n";
  
$auxi = fopen($archivo, 'a'); // Añade $linea al archivo mi_tinywebdb_v2.htm 
fwrite($auxi, $linea);

} else {
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    // OBTENER EL VALOR DE LA ETIQUETA.

// Busca en el archivo "mi_tinywebdb_v2.htm" el Valor correspondiente a la Etiqueta pedida.
$auxi = fopen($archivo, 'r');
$existe = ""; 

while(!feof($auxi)){
    $linea = fgets($auxi);
    $campos = explode(":", $linea);

    if ($campos[0] == $etiqueta) {
        $valor =$campos[1];
        $existe ="si";
    }
}

// Envía el resultado.
            if ($existe == "si"){ 

            // Envia el valor obtenido.
            $resultado = array("VALUE", $etiqueta, $valor);    

             } else { 
             
            // Envia "No_existe" esa Etiqueta.
            $resultado = array("VALUE", $etiqueta, "No_existe");    
            
             }
             
            $resultado_en_JSON = json_encode($resultado);
            echo $resultado_en_JSON;

             }
 
fclose($auxi);
?>

__________________________________________

- Comentarios.

- Con este último código PHP, si encuentra una Etiqueta igual que la que vamos a guardar, la borra, y escribe la nueva Etiqueta y su Valor al final del archivo, prueba y consulta:

http://kio4.esy.es/mi_tinywebdb_v2.htm

- El código que he añadido borra aquellas líneas que tengan una cadena como la de la etiqueta y estén a la izquierda de los dos puntos.

- Tanto con este código como con el otro puedes crear varias bases de datos, simplemente cambiando el nombre del PHP y del archivo .htm.

__________________________________________
__________________________________________
__________________________________________

3.- Bajar el archivo mi_tinydbd.htm al móvil.

- Nuestra base de datos es el archivo mi_tinydbd.htm y está en nuestro servidor web, concretamente: http://kio4.esy.es/mi_tinywebdb.htm

- Vamos a bajarlo a nuestro móvil, para ellos podemos consultar el tutorial: 328_bajar_archivos_php.htm

- Aquí pongo el archivo de ese tutorial adaptado a la dirección de nuestra base de datos.

p328_K_bajar_tinydb.aia

 

- El archivo mi_tinywebdb.htm, que contiene nuestra base de datos, se baja de internet y se guarda en el directorio:

/mnt/sdcard/mi_tinywebdb.htm

de nuestro móvil.

- Lo puedes localizar mediante un explorador de archivos de móvil como el AndExplorer.

__________________________________________
__________________________________________
__________________________________________

4.- Mismo código anterior con "|".

- Este código es casi el mismo que hemos visto anteriormente, simplemente he cambiado el separador ":" por "|"

mi_tinywebdb_v2.php

	<?php
  // Juan Antonio Villalpando
  // http://kio4.com/appinventor/326A_crear_miniwebDB.htm
  //
  // http://mydomain/mydirectory/mi_tinywebdb_v2.htm
  
$recibe_post = $_SERVER["REQUEST_URI"];
$etiqueta = $_POST['tag'];
$archivo = 'mi_tinywebdb_v2.htm';

if (!file_exists($archivo)) {$handle = fopen($archivo, 'w');}

 if(strpos($recibe_post,'storeavalue')){

			//////////////////////////// Si ya existe esa Etiqueta, la BORRA.
			$arc = file($archivo);
			$auxi = fopen($archivo,"w");

			foreach($arc as $linea)
			{ 
			$campos = explode("|", $linea);
			if ($campos[0] != $etiqueta) {
					fputs($auxi, $linea);
			}
			}
			fclose($auxi);
			/////////////////////////////////////////////////////////////////////
																	
	  //////////////////////////////////////////////////////////////////////////
	 // GUARDAR ETIQUETA Y VALOR.
																	
$valorAGuardar = $_POST['value'];
$linea = $etiqueta."|".$valorAGuardar."|
\n"; $auxi = fopen($archivo, 'a'); // Añade $linea al archivo mi_tinywebdb_v2.htm fwrite($auxi, $linea); } else { //////////////////////////////////////////////////////////////// // OBTENER EL VALOR DE LA ETIQUETA. // Busca en el archivo "mi_tinywebdb_v2.htm" el Valor de la Etiqueta pedida. $auxi = fopen($archivo, 'r'); $existe = ""; while(!feof($auxi)){ $linea = fgets($auxi); $campos = explode("|", $linea); if ($campos[0] == $etiqueta) { $valor =$campos[1]; $existe ="si"; } } // Envía el resultado. if ($existe == "si"){ // Envia el valor obtenido. $resultado = array("VALUE", $etiqueta, $valor); } else { // Envia "No_existe" esa Etiqueta. $resultado = array("VALUE", $etiqueta, "No_existe"); } $resultado_en_JSON = json_encode($resultado); echo $resultado_en_JSON; } fclose($auxi); ?>

__________________________________
__________________________________

 

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información