| 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 ____________________________ 398B.- Falta de alumnos a la clase. MySQL. (II)   p398_falta_alumnos_MySQL.aia
 
 - En el tutorial anterior: 398.- Falta de alumnos a la clase. MySQL. (I) vimos cómo crear la tabla de curso en una base de datos: - crearcursosinacentos.sql - Ahora vamos a ver el código de Bloques en App inventor.   
 ______________________- Diseño.
  
 ______________________- Bloques.
 
        
          |  | - Al pulsar el Botón1, vamos al archivo: http://kio4.esy.es/faltas_alumnos.php? y ObtenemosTexto del listado de alumnos que está en la base de datos vista anteriormente. Ese contenidoDeRespuesta se introduce en el SelectorDeLista.     DespuésDeSeleccionar un elemente del SelectorDeLista, vamos a: http://kio4.esy.es/faltas_ver.php? Apellido= El apellido seleccionado. Esta es la parte más difícil de entender.    - Se consulta cómo está los campos J, I y R de la tabla para ponerlo con las CasillasDeVerificación. El archivo faltas_ver.php devuelve J, I, R de ese Apellido. .,-.,-X,- Se recorta por cada ,- Se introduce en la lista.  1 = . 2 = . 3 = X  Solo puede haber una X en cada Apellido, pone cierto en la CasillaDeVerificación correspondiente.   En caso que no tenga punto ni X, pone todas a falso     ------------------------------------------------ Esta parte es fácil de entender.    Aquí están los eventos que ocurren cuando pulsamos alguna de las CasillasDeVerificación. Lo de cierto y falso es para que si selecciona una, se desmarca las otras, de esta manera solo puede seleccionar una a la vez. Cada vez que toca una CasillaDeVerificación va al proceso faltas_poner               Cada vez que toca una CasillaDeVerificación... faltas= &J=falso&I=falso&R=cierto Cambia el falso por . Cambia el cierto por X  faltas= &J=.&I=.&R=X Envía todo a: http://kio4.esy.es/faltas_poner.php?Apellidos=Rodriguez
 &J=.&I=.&R=X
   Esto guardará en la base de datos de la forma 
 Rodriguez . . X
 |  ______________________- Archivos PHP.
 - Este archivo selecciona y envía todos los Apellidos de la base de datos. - En $row[0]; estará cada apellido. Los vamos acumulando todos y separando por ,  $todos=$todos.$row[0].', '; echo $todos; - Devolverá: Alvarez, Benitez, Chavez, Dominguez,... - El SelectorDeLista ObtendráTexto y lo pondrá en sus elementos.  
        
          | faltas_alumnos.php
 |  
          | 
<?php
// Juan Antonio Villalpando.
// KIO4.COM
// 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";
// 2.- CONEXION A LA BASE DE DATOS
$link = new mysqli($db_host, $db_login, $db_pswd, $db_name);
mysqli_query($link, "SET CHARACTER SET utf8");
// 3.- VISUALIZACIÓN DE LOS DATOS
$query = "SELECT Apellido FROM curso ";
$result = mysqli_query($link, $query);
if(mysqli_num_rows($result)) { 
// Une los resultados
while($row = mysqli_fetch_row($result))
{
$todos=$todos.$row[0].', ';
}
} 
// Envía los resultados separados por coma
echo $todos;
mysqli_close($link);
?> |  ----------------------------------------------------------------------------------- - Recibe:  Apellidos=Rodriguez&J=.&I=.&R=X - Actualiza UPDATE ese Apellido con esos campos.  
        
          | faltas_poner.php
 |  
          | 
<?php
// Juan Antonio Villalpando.
// KIO4.COM
// Obtención de datos.
$datos=$_GET;
$Apellido=$datos['Apellido'];
$J=$datos['J'];
$I=$datos['I'];
$R=$datos['R'];
// 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";
// 2.- CONEXION A LA BASE DE DATOS
$link = new mysqli($db_host, $db_login, $db_pswd, $db_name);
mysqli_query($link, "SET CHARACTER SET utf8");
// 3.- ACTUALIZA
mysqli_query ($link, "UPDATE curso SET J='$J', I='$I', R='$R' WHERE Apellido='$Apellido'" );
echo $Apellido;
mysqli_close($link);
?> |  ----------------------------------------------------------------------------------- - Recibe Apellidos. - SELECCCIONA J, I, R de ese Apellido. - Devuelve: $faltas=$row[1].',-'.$row[2].',-'.$row[3].',-'; $faltas= .,-.,-X,- No confundir el punto que sirve para unir caracteres con el punto que significa falso en las CasillasDeVerificación. Fíjate que en este ejemplo tenemos . . X  - El ,- se utiliza para separar los campos.  NOTA: Suponemos que vamos a seleccionar una cierta persona: $query = "SELECT Nombre, Apellido, Edad FROM personas WHERE Apellido='$Apellido'";  Obtenemos el resultado: $result = mysql_query($query, $link); El resultado viene en row row[1] = Luisitorow[2] = Álvarez
 row[3] = 23
 
        
          | faltas_ver.php
 |  
          | 
<?php
// Juan Antonio Villalpando.
// KIO4.COM
// Toma el dato de Apellido.
$datos=$_GET;
$Apellido=$datos['Apellido'];
// 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";
// 2.- CONEXION A LA BASE DE DATOS
$link = new mysqli($db_host, $db_login, $db_pswd, $db_name);
mysqli_query($link, "SET CHARACTER SET utf8");
// 3.- VISUALIZACIÓN DE LOS DATOS
$query = "SELECT Apellido, J, I, R FROM curso WHERE Apellido='$Apellido'";
$result = mysqli_query($link, $query);
if(mysqli_num_rows($result)) { 
// Une los resultados
while($row = mysqli_fetch_row($result))
{
$faltas=$row[1].',-'.$row[2].',-'.$row[3].',-';
}
} 
echo $faltas;
mysqli_close($link);
?> |  ______________________- Propuestas.
 - Sabiendo que para añadir campos por código podemos utilizar dentro del PHP esta orden:  ALTER TABLE curso ADD J_10_3 VARCHAR(2);ALTER TABLE curso ADD I_10_3 VARCHAR(2);
 ALTER TABLE curso ADD R_10_3 VARCHAR(2);
 - Crea un archivo PHP para que el profesor pueda elegir el día para poner las faltas, ampliando los campos de la base de datos. Apellidos, Nombre, J_10_3, I_10_3, R_10_3, J_11_3, I_11_3, R_11_3  __________________________________    |