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
____________________________
412.- Cuestionario. MySQLi. PHP.
p412_mysql_test.aia
- Vamos a realizar un cuestionario, las respuestas se guardarán en MySQL mediante PHP.
- Dentro de la base de datos xxxxx_tutorial, vamos a crear otra tabla llamada cuestionario con esta estructura:
- La puedes Importar mediante este archivo:
cuestionario.sql |
-- Juan A. Villalpando.
-- KIO4.COM
CREATE TABLE `cuestionario` (
`id` int(6) NOT NULL,
`nombre` varchar(12) COLLATE utf8_spanish2_ci NOT NULL,
`edad` varchar(2) COLLATE utf8_spanish2_ci NOT NULL,
`ciudad` varchar(12) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,
`forofo` varchar(30) COLLATE utf8_spanish2_ci NOT NULL,
`opinion` varchar(35) COLLATE utf8_spanish2_ci NOT NULL,
`socio` varchar(40) COLLATE utf8_spanish2_ci NOT NULL,
`profesion` varchar(20) COLLATE utf8_spanish2_ci NOT NULL,
`intelectual` varchar(45) COLLATE utf8_spanish2_ci NOT NULL,
`practica` varchar(2) COLLATE utf8_spanish2_ci NOT NULL,
`deporte` varchar(120) COLLATE utf8_spanish2_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci;
ALTER TABLE `cuestionario`
ADD PRIMARY KEY (`id`);
ALTER TABLE `cuestionario`
MODIFY `id` int(6) NOT NULL AUTO_INCREMENT;
COMMIT;
|
--------------------------------------------------------------------------
- Mi aplicación realizará dos ejemplos:
1.- Cuando arranque la aplicación saldrá un Notificador y pedirá el nombre del usuario. La aplicación mediante PHP y MySQL consultará si ese usuario existe en la base de datos , en caso que exista saldra la pantalla del "Cuestionario". El usuario deberá estar creado previamente en la base de datos para que pueda entrar.
2.- En el "Cuestionario" el usuario contestará a las preguntas, las hay de tipo CampoDeTexto, Option y CheckBox.
- Este ejemplo funcionará de la siguiente forma:
1.- Saldrá la pantalla Screen1, mediante un Notificador1 solicitará "Nombre".
2.- Introducimos nuestro "Nombre", éste deberá estar previamente creado en la Base de datos.
3.- Si introducimos el "Nombre" correcto, entrará en la pantalla "cuestionario".
4.- Para autentificar al usuario, el archivo bd_autorizacion.php
http://kio4.com/appinventor/php/bd_autorizacion.php
5.- Irá a la base de datos, a la tabla `cuestionario` y contará si hay algún usuario con ese "Nombre", según haya o no haya, devolverá "si" o "no" mediente el archivo bd_autorizacion.php
6.- Si llega un "si", iniciará la pantalla "cuestionario". 7.- También he puesto una TinyBD_Nombre, simplemente para guardar el nombre, por ahora no hace falta.
|
|
___________________________
1A.- Screen1. Diseño.
___________________________
1B.- Screen1. Bloques.
_________________________________
1C.- Código PHP.
bd_autorizacion.php |
<?php
// Juan Antonio Villalpando
// juana1991@yahoo.com
// http://kio4.com
// 1.- IDENTIFICACION nombre de la base, del usuario, clave y servidor
require_once('bd_autentifica.php');
// 2.- CONEXION A LA BASE DE DATOS
// mysql_select_db($db_name) or die(mysql_error());
$link = new mysqli($db_host, $db_login, $db_pswd, $db_name);
// Check connection
if ($link->connect_error) {
die('Connect Error: ' . $mysqli->connect_error);
}
// COMPRUEBA SI EXISTE.
$nombre = $_POST['nombre'];
$resultado = mysqli_query($link,"SELECT * FROM cuestionario WHERE nombre = '$nombre' ");
$datos = mysqli_fetch_array($resultado, MYSQLI_NUM);
// Responde si existe o no
if($datos[0] > 0) {echo "si";}
else {echo "no";}
mysqli_close($link);
?>
|
___________________________________________
___________________________________________
___________________________________________
___________________________________________
- Pantalla cuestionario:
1.- Saldrá la pantalla cuestionario, observamos CampoDeTexto, elecciones únicas y elecciones varias en deportes.
2.- Después de rellenar las 10 preguntas, pulsamos el botón de "Enviar".
3.- Mediante bd_cuestionario.php, se enviará las respuestas a la base de datos mediante PHP. |
|
_________________________________
2A.- Diseño.
_________________________________
2B.- Bloques.
_________________________________
2C.- Código PHP.
- Observa en esta línea el acento `grave` en `cuestionario` y `nombre`
- La comilla simple en '$nombre'
- La comilla doble al principio y al final del "SELECT.....)"
$res=mysqli_query($link, "SELECT nombre FROM `cuestionario` WHERE `nombre`='$nombre' ");
bd_cuestionario.php |
<?php
// Juan Antonio Villalpando
// juana1991@yahoo.com
// http://kio4.com
// 1.- IDENTIFICACION nombre de la base, del usuario, clave y servidor
require_once('bd_autentifica.php');
// 2.- CONEXION A LA BASE DE DATOS
// mysql_select_db($db_name) or die(mysql_error());
$link = new mysqli($db_host, $db_login, $db_pswd, $db_name);
// Check connection
if ($link->connect_error) {
die('Connect Error: ' . $mysqli->connect_error);
}
$nombre = $_POST['nombre'];
$edad = $_POST['edad'];
$ciudad = $_POST['ciudad'];
$forofo = $_POST['forofo'];
$opinion = $_POST['opinion'];
$socio = $_POST['socio'];
$profesion = $_POST['profesion'];
$intelectual = $_POST['intelectual'];
$practica = $_POST['practica'];
$deporte = $_POST['deporte'];
// $deporte = implode('|', $_POST['deporte']); // Para Web
$res=mysqli_query($link, "SELECT nombre FROM `cuestionario` WHERE `nombre`='$nombre' ");
$row=mysqli_fetch_array($res);
$count = mysqli_num_rows($res);
if( $count == 0 ) { // Si ha contado 0 nombre, es que el usuario no esta registrado. Lo registra y pone los datos.
$query="insert into cuestionario (nombre, edad, ciudad, forofo, opinion, socio, profesion, intelectual, practica, deporte) values ('$nombre','$edad', '$ciudad', '$forofo', '$opinion','$socio','$profesion', '$intelectual','$practica','$deporte')";
$result = mysqli_query($link, $query);
echo 'Registrado';
}else{
echo ' Ya estaba registrado';
// Actualiza
$query="update cuestionario set edad='$edad', ciudad='$ciudad', forofo='$forofo', opinion='$opinion', socio='$socio', profesion='$profesion', intelectual='$intelectual', practica='$practica', deporte='$deporte' WHERE nombre='$nombre' ";
$result = mysqli_query($link, $query);
}
mysqli_close($link);
?>
|
____________________
- Comentarios.
- Fíjate cómo se envía las elecciones únicas y la elección múltiple de "deportes".
- "deporte" se enviará: Andar|Ver televisión|||Jugar al fútbol||
- Estudia el archivo "bd_cuestionario.php", si no existiera el usuario, lo crearía e insertaría los valores. En esta app el usuario debe exister para entrar en la aplicación según la pantalla Screen1.
- Pero lo he puesto de esta manera para que se vea la diferencia entre insertar y actualizar.
- Si el usuario existe (debería existir, aunque no es necesario), actualizaría las respuestas de ese usuario.
- Observa la diferencia entre Insertar y Actualizar.
__________________________________
|