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