Diseño de cuestionarios con php

En el post de hoy, vamos a abordar un tema fundamental en las pasarelas de información, como es la elaboración de formularios para la inserción de registros en las tablas de los Sistemas de Gestión de Bases de Datos MySQL, sin necesidad de programar.

El objetivo aquí, es dotar de herramientas a los usuarios del Sistema de Información de la empresa, para que puedan hacer uso del SGBD sin necesidad, de introducir sintaxis. Es muy sencillo gracias a PHP, que nos permite generar una pasarela de datos a nuestro gestor, dotándonos de una interfaz gráfica con la que trabajar.

Como veís el ejercicio divide el código en cuatro partes:

1) La primera parte proporciona un lenguaje CSS para dotar de formato al cuestionario.

2) El segundo con mysqli nos hemos conectado a nuestro SGBD, además mediante una estructura de control if hemos pedido al Query que identifique si se ha conectado correctamente al SGBD y que de lo contrario nos avise.

3) A continuación, hemos identificado los campos cuya información va a almacenarse en las columnas de la tabla mediante el comando $POST

4) Finalmente, se han includio las preguntas en HTML pero identificando las variables creadas, donde debe volcar la información para cada uno de los registros insertados.

Recuerda que es necesario que previamente hayas creado con SQL y en PHPMyAdmin una base de datos y una tabla con los campos que quieres cumplimentar mediante el cuestionario PHP.

A continuación el código fuente del ejercicio:

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
* { background-color: #e1e8ec;
   }
  a {color: #283747;
     text-align: left;
     }
  
   input {
      color:white;
      font-size: 12px;
      padding: 3px;
      background:#8caed3;
              }
   form {
      color:#283747;
      font-size: 12px;
      border-color: green;
      text-align: left;
      margin: 50px;
   }
   img {
      align: right;
   }
 </style>
</head>
   <body>
 <a title="database-academy.eu" href="https://database-academy.eu/"><img src="https://cdn.shortpixel.ai/spai/w_56+q_lossy+ret_img+to_webp/https://database-academy.eu/wp-content/uploads/2020/09/apple-icon-144x144-1-e1599322950656.png" alt="database academy, todo sobre sistemas de gestión de bases de datos" /></a><br/>
</a>
<?php
 
      // Dirección o IP del servidor MySQL
      $host = "localhost";
 
      // Puerto del servidor MySQL
      $puerto = "3306";
 
      // Nombre de usuario del servidor MySQL
      $usuario = "root";
 
      // Contraseña del usuario
      $contrasena = "";
 
      // Nombre de la base de datos
      $baseDeDatos ="cuestionario";
 
      // Nombre de la tabla a trabajar
      $tabla = "registros";
 
      function Conectarse()
      {
         global $host, $puerto, $usuario, $contrasena, $baseDeDatos, $tabla;
 
         if (!($link = mysqli_connect($host.":".$puerto, $usuario, $contrasena))) 
         { 
            echo "Error conectando a la base de datos.<br>"; 
            exit(); 
            }
         else
         {
            echo "<a>Listo, la conexión con el Sistema Gestor de Bases de Datos está funcionando con éxito.<br>";
         }
         if (!mysqli_select_db($link, $baseDeDatos)) 
         { 
            echo "Error seleccionando la base de datos.<br>"; 
            exit(); 
         }
         else
         {
            echo "Hemos obtenido la conexión con la base de datos: $baseDeDatos sin problema.<br>";
         }
      return $link; 
      } 
 
      $link = Conectarse();
 
      if($_POST)
      {
         $queryInsert = "INSERT INTO $tabla (Nombre, apellidos, Telefono, Direccion, Aficion, Profesion) VALUES ('".$_POST['nombreForm']."', '".$_POST['apellidoForm']."','".$_POST['telefonoForm']."','".$_POST['direccionForm']."','".$_POST['aficionForm']."','".$_POST['profesionForm']."');";
 
         $resultInsert = mysqli_query($link, $queryInsert); 
 
         if($resultInsert)
         {
            echo "<strong>Se ingresaron los registros con éxito</strong>. <br>";
         }
         else
         {
            echo "No se ingresaron los registros. <br>";
         }
 
      }
      
       mysqli_close($link); 
 
      ?>
 
      <hr>
      <p>A continuación cumplimenta los campos para dar de alta nuevos registros:
      <form action="" method="post">
         Nombre: <input type="text" name="nombreForm"> <br> <br>
         Apellidos: <input type="text" name="apellidoForm"> <br> <br>
         Telefono: <input type="text" name="telefonoForm"> <br> <br>
         Dirección completa: <input type="text" name="direccionForm"> <br> <br>      
         Aficiones: <input type="text" name="aficionForm"> <br> <br>
         Profesión: <input type="text" name="profesionForm"> <br> <br>
         <input type="submit" value="Guardar">
      </form>
 
      </body> 
      </html>

Como ves, realizar un formulario o cuestionario con PHP para volcar datos en un SGBD MySQL es muy sencillo y te será de enorme utilidad en tu trabajo web y con bases de datos relacionales.

El resultado es el siguiente:

Mediante lenguaje CSS podéis dar el formato que deséis a vuestro formulario

Podéis probar insertando un registro:

Vista del cuestionario cumplimentado

Y a continuacion consultando al SGBD, podréis ver que el registro se ha grabado correctamente:

Vista de PHPMyAdmin con el registro que se acaba de cumplimentar, mediante la herramienta creada con PHP

PHP te ofrece infinidad de posibilidades para elaborar páginas web dinámicas que intercambien información con SGBD MySQL. Un recurso atractivo y gratuito.

Autor: ignacio

Profesor de Sistemas de Gestión de Información

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *