| 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 ____________________________ 398C.- Falta de alumnos a la clase. Apellidos con acento. MySQL. (III)   p398_falta_alumnos_MySQL_2.aia
   - En el tutorial anterior: 398B.- Falta de alumnos a la clase. MySQL. (I) vimos cómo crear la tabla de curso en una base de datos y el código para poner las faltas de los alumnos. - Teníamos problemas con los acentos en los apellidos. Los acentos se ven bien en la base de datos, también se ven en el VisorDeLista, pero cuando se llama a una página PHP con el apellido acentuado, se produce error. http://kio4.esy.es/faltas_ver.php_2?Apellido=Ibáñez - Vamos a solventar este error. - He creado la tabla: curso2 con acento en los apellidos. - Ha cambiado los archivos faltas_alumnos_2.php, faltas_poner_2.php, faltas_ver_2.php - En esos archivos cambié donde ponía curso por curso2 - Donde ponía  $datos=$_GET;$Apellido=$datos['Apellido'];
 por $datos=$_GET;$id=$datos['id'];
   $query = "SELECT Apellido, J, I, R FROM curso2 WHERE id='$id'"; mysql_query ("UPDATE curso2 SET J='$J', I='$I', R='$R' WHERE id='$id'" );   - Esos nombres de archivos lo he cambiado en los Bloques correspondientes de App inventor. - En vez de enviar Apellido (como en el tutorial anterior) envío la id correspondiente. - La id correspondiente a cada Apellido en la base de datos, coincide con el índice del SelectorDeLista seleccionado. ------------------------------------------------------------------------------------------------- - Bajamos este archivo, con los apellidos acentuados y lo importamos a la base de datos u798509677_comun. - crearcurso.sql 
 - En curso2 tenemos los Apellidos con acentos. 
 ______________________- Diseño, igual que antes.
   
 ______________________- Bloques.
 
        
          |  | - Al pulsar el Botón1, vamos al archivo: http://kio4.esy.es/faltas_alumnos.php_2? 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 elemento del SelectorDeLista, vamos a: http://kio4.esy.es/faltas_ver.php_2? id= El índice elegido en el SelectorDeLista     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_2.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_2?id=4
 &J=.&I=.&R=X
   Esto guardará en la base de datos de la forma 
 4 . . 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á: Álvarez, Benítez, Chávez, Domínguez,... - El SelectorDeLista ObtendráTexto y lo pondrá en sus elementos.  
        
          | faltas_alumnos_2.php
 |  
          | 
<?php
// Juan Antonio Villalpando.
// KIO4.COM
// 1.- IDENTIFICACION nombre de la base, del usuario, clave y servidor
$db_host="mysql4.000webhost.com";
$db_name="a1955265_gentes";
$db_login="a1955265_juan";
$db_pswd="contraseña";
$link = mysql_connect($db_host, $db_login, $db_pswd);
// 2.- CONEXION A LA BASE DE DATOS
mysql_select_db($db_name, $link);
mysql_query("SET CHARACTER SET utf8 ");
// 3.- ORDENAR LAS id
// Esto lo hacemos para asegurarnos que los id sean secuenciales, 1, 2, 3, 4 , 5...
// En realidad tal como hemos importado, no es necesario.
mysql_query("ALTER TABLE curso2 DROP id");
mysql_query("ALTER TABLE curso2 AUTO_INCREMENT = 1");
mysql_query("ALTER TABLE curso2 ADD id int NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST");
// 3.- VISUALIZACIÓN DE LOS DATOS
$query = "SELECT Apellido FROM curso2 ";
$result = mysql_query($query, $link);
if(mysql_num_rows($result)) { 
// Une los resultados
while($row = mysql_fetch_row($result))
{
$todos=$todos.$row[0].', ';
}
} 
// Envía los resultados separados por coma
echo $todos;
mysql_close($link);
?> |  ----------------------------------------------------------------------------------- - Recibe:  $datos=$_GET;$id=$datos['id'];
 $J=$datos['J'];
 $I=$datos['I'];
 $R=$datos['R'];
 id=4&J=.&I=.&R=X - Actualiza UPDATE ese id con esos campos.  
        
          | faltas_poner_2.php
 |  
          | 
<?php
// Juan Antonio Villalpando.
// KIO4.COM
// Obtención de datos.
$datos=$_GET;
$id=$datos['id'];
$J=$datos['J'];
$I=$datos['I'];
$R=$datos['R'];
// 1.- IDENTIFICACION nombre de la base, del usuario, clave y servidor
$db_host="mysql4.000webhost.com";
$db_name="a1955265_gentes";
$db_login="a1955265_juan";
$db_pswd="contraseña";
$link = mysql_connect($db_host, $db_login, $db_pswd);
// 2.- CONEXION A LA BASE DE DATOS
mysql_select_db($db_name, $link);
mysql_query("SET CHARACTER SET utf8 ");
// 3.- ACTUALIZA
mysql_query ("UPDATE curso2 SET J='$J', I='$I', R='$R' WHERE id='$id'" );
echo $Apellido;
mysql_close($link);
?> |  ----------------------------------------------------------------------------------- - Recibe $datos=$_GET;$id=$datos['id'];
 - SELECCCIONA J, I, R de la id enviada. - 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. 
        
          | faltas_ver_2.php
 |  
          | 
<?php
// Juan Antonio Villalpando.
// KIO4.COM
// Toma el dato de Apellido.
$datos=$_GET;
$id=$datos['id'];
// 1.- IDENTIFICACION nombre de la base, del usuario, clave y servidor
$db_host="mysql4.000webhost.com";
$db_name="a1955265_gentes";
$db_login="a1955265_juan";
$db_pswd="contraseña";
$link = mysql_connect($db_host, $db_login, $db_pswd);
// 2.- CONEXION A LA BASE DE DATOS
mysql_select_db($db_name, $link);
mysql_query("SET CHARACTER SET utf8");
// 3.- VISUALIZACIÓN DE LOS DATOS
$query = "SELECT Apellido, J, I, R FROM curso2 WHERE id='$id'";
$result = mysql_query($query, $link);
if(mysql_num_rows($result)) { 
// Une los resultados
while($row = mysql_fetch_row($result))
{
$faltas=$row[1].',-'.$row[2].',-'.$row[3].',-';
}
} 
echo $faltas;
mysql_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  __________________________________    |