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
____________________________
340B.- App inventor y MySQL. Otra forma.
p340B_mysql_php.aia
- Fíjate, en el tutorial anterior las órdenes PHP estaban en el código del App inventor.
- Por ejemplo, este es el código de App inventor donde se ponía la orden de insertar: INSERT INTO personas (Nombres, Edad, Ciudad) VALUES (.... etcétera...
Esta orden irá al correspondiente archivo PHP y se ejecutará para insertar los datos en la base de datos MySQL.
---------------------------------------------
- Por otra parte, anteriormente vimos en los tutoriales: 335_php_mysql_web.htm y en 337_php_mysql_web_2.htm
- que los códigos pueden estar en archivo PHP, es decir, enviar los datos, pero la orden de ejecución de MySQL está en el archivo PHP.
---------------------------------------------
- Ahora.
- Pues bien, ahora lo que queremos es volver hacer lo que hicimos en el tutorial anterior con códigos en App inventor: 340_appinventor_mysql.htm,
- pero ahora que las órdenes estén en un archivo PHP.
- Podríamos hacerlo en varios archivos, como hicimos en: 335_php_mysql_web.htm
- Pero vamos a hacerlo en un solo archivo, como hicimos en: 337_php_mysql_web_2.htm
- Manos a la obra.
- Tenemos la misma base de datos que la del tutorial anterior:
_________________
- Diseño.
- Mantenemos el mismo Diseño que en el ejemplo: 340_appinventor_mysql.htm
NOTA: Web1 está en Conectividad (no confundir con VisorWeb)
_________________
- Bloques.
- El archivo está en http://kio4.esy.es/basedatosmysql_bd_unida.php.
_________________
- Comentarios.
- Fíjate que ahora va al archivo http://kio4.esy.es/basedatosmysql_bd_unida.php?
- Se envía el nombre del Botón y los datos correspondientes.
- La orden de inserción de datos está en el archivo PHP
$query="insert into personas (Nombre, Edad, Ciudad) values ('$Nombre','$Edad','$Ciudad')";
- La orden de inserción de datos está en el archivo PHP
_________________
- Archivo PHP.
En nuestro servidor web necesitaremos un archivo PHP, concretamente: basedatosmysql_bd_unida.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_unida.php
basedatosmysql_bd_unida.php
|
<?php
// 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());
$boton = $_GET['boton'];
/////////////////////////////// INSERTAR ////////////////////////////////////
if ($boton == "btnEnviar"){
$Nombre = $_GET['Nombre'];
$Edad = $_GET['Edad'];
$Ciudad = $_GET['Ciudad'];
$query="insert into personas (Nombre, Edad, Ciudad) values ('$Nombre','$Edad','$Ciudad')";
$result = mysql_query($query);
}
/////////////////////////////// BORRAR ////////////////////////////////////
if ($boton == "btnBorrar"){
$Nombre = $_GET['Nombre'];
$query="delete from personas where Nombre='$Nombre'";
$result = mysql_query($query);
}
////////////////////////////// MODIFICAR /////////////////////////////////////
if ($boton == "btnActualizar"){
$Nombre = $_GET['Nombre'];
$Edad = $_GET['Edad'];
$Ciudad = $_GET['Ciudad'];
$query="update personas set Edad='$Edad', Ciudad='$Ciudad' WHERE Nombre='$Nombre'";
$result = mysql_query($query);
}
////////////////////////////// CONSULTAR /////////////////////////////////////
if ($boton == "btnBuscarNombre"){
$Nombre=$_GET['Nombre'];
$hacer = mysql_query ("SELECT * FROM personas WHERE Nombre='$Nombre' ");
enviar_respuesta($hacer);
}
if ($boton == "btnVerTabla"){
$hacer = mysql_query ("SELECT * FROM personas");
enviar_respuesta($hacer);
}
///////////////////////////////////////////////////////////////////////////////
// En los casos que hay btnBuscarNombre o btnVerTabla y se debe enviar una respuesta actúa este código.
function enviar_respuesta($hacer)
{
$resultado = mysql_query("SHOW COLUMNS FROM personas");
$numerodefilas = mysql_num_rows($resultado);
if ($numerodefilas > 0) {
while ($rowr = mysql_fetch_row($hacer)) {
for ($j=0;$j<$numerodefilas;$j++) {
$en_csv .= $rowr[$j].", ";
}
$en_csv .= "\n<br>";
}
}
print $en_csv;
}
///////////////////////////////////////////////////////////////////
mysql_close($con);
?> |
Fijate que el nombre y contraseña son los que le pusistes a la base de datos.
Conectamos con la base de datos:
$con = mysql_connect($db_host, $db_login, $db_pswd) or die(mysql_error());
Tomamos GET la información que nos llega del boton:
$boton = $_GET['boton'];
Según como sea ese valor: btnEnviar, btnBorrar, btnActualizar, btnBuscarNombre o btnVerTabla, irá a la parte del código que realiza esa orden.
En esa parte del código se toman los datos enviados y se realiza la orden:
if($boton == "btnEnviar"){
$Nombre = $_GET['Nombre'];
$Edad = $_GET['Edad'];
$Ciudad = $_GET['Ciudad'];
$query="insert into personas (Nombre, Edad, Ciudad) values ('$Nombre','$Edad','$Ciudad')";
$result = mysql_query($query);
--------------------------
- La parte de btnBuscarNombre o btnVerTabla, es algo más complicado.
- Lo que hace es tomar los datos requeridos y meterlos en la variable $en_csv
- Esta variable se envía al código de App inventor, concretamente al Bloque. Web1.ObtuvoTexto.
- La forma de enviarlo es mediante: print $en_csv;
- Este bloque presentará el resultado de print $en_csv;
- Lo presentará en forma de texto, además mediante el bloque de lista desde tabla CSV lo convertimos a lista.
- Una vez que está como lista, el usuario puede tomar los índices necesarios.
_______________________________
|