|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  Raspberry Pi Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  AutoIt (Programación) Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

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.

__________________________________

 

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información