¿Necesitas saber cómo guardar datos de un formulario PHP en MySQL? Las funciones con PHP son numerosas y te ayudan a dinamizar tu página web de distintas maneras. En este caso, podrás implementar estos formularios con la intención de obtener información que te permita fidelizar clientes y mejorar el rendimiento de tu negocio.
Un formulario diseñado en PHP te permitirá obtener datos de todo tipo, como fechas, nombres o números de contacto. Sigue leyendo porque vamos a impartir una clase intensiva de PHP en la que te explicaremos cómo implementarlo y sacarle así más partido a tu base de datos MySQL.
¿Cómo usar PHP para hacer formularios en MySQL?
Cuando implementes este formulario en PHP, los datos que se obtengan se enviarán a un servidor que los procesará. Podrás aprovechar esa información de manera práctica y almacenarla en una base de datos de la cual puedas obtener mucho rendimiento.
Como ejemplo sencillo de un formulario PHP en HTML tenemos lo siguiente:
<html>
<body>
<form action="contact.php" method="post">
El nombre: <input type="text" name="nombre"><br>
El campo de email: <input type="text" name="email"><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>
Esto muestra un formulario PHP sencillo que le indica al usuario que introduzca su nombre y su email. La etiqueta que dice “form” o formulario es la que nos indica la creación de dicho formulario. El complemento “action” denota quién procesará los datos introducidos.
La porción “method” indica al servidor de qué manera se enviarán los datos, las cuales pueden ser por get (por URL) o post (por el servidor).
¿Cómo guardar datos de un formulario HTML en una base de datos MySQL utilizando PHP? (paso a paso)
En el ejemplo anterior queríamos compartir contigo un sistema sencillo que te permitiera entender bien a qué nos referimos con el inicio de este tipo de proceso. Pero ahora vamos a explicarte paso a paso todo lo que necesitas hacer y cómo plantearlo para poder llevar a cabo el guardado de datos.
Antes de nada, te diremos que necesitarás utilizar un software como XAMPP que te permita tener tu propio servidor local. A partir de ahí, puedes comenzar a seguir los pasos.
Paso 1. Plantéate qué campos debe tener en tu formulario
Continuamos con el ejemplo del formulario de contacto que hemos comentado antes, pero complicándolo más y desarrollando la explicación a fondo.
Una vez te hayas asegurado de que tu servidor local funciona, para lo cual solo tienes que tratar de entrar en http://localhost/, deberás pensar qué necesitará tener el formulario de contacto que vas a gestionar.
Este formulario podría ser, por ejemplo, el que pondrías dentro de tu web en el apartado “Contact”. Por lo tanto, en el ejemplo que haremos debería tener, como mínimo, los siguientes campos: nombre, dirección de email y mensaje, que respectivamente se materializarán con el uso de “text input”, “email input” y “multi-line text”. También podrías exigir el añadir el número de teléfono, pero no siempre es necesario.
Está claro que ser autodidacta es una de las mejores cualidades que podría tener cualquier programador.
Sin embargo, si quieres acelerar al máximo tu aprendizaje, te recomendamos que veas esta lista con los mejores cursos de PHP del mercado. Los hemos seleccionado y analizado minuciosamente para ayudarte a elegir el mejor para ti.
Paso 2. Dentro de MySQL, crea una base de datos y una tabla
Recuerda que necesitas estar trabajando con XAMPP para poder aplicar todas las indicaciones que te damos. Lo siguiente que tienes que hacer es, desde tu navegador, entrar en la dirección http://localhost/phpmyadmin/.
Esto te permitirá hacer la gestión de la base de datos en el ordenador. Pulsa en la pestaña “Databases” y luego dirígete a la casilla “create database”. Crea una nueva base de datos a la que, por el contexto, le puedes dar el nombre de “db_contact” y luego en «Create».
De forma inmediata, ahora que ya tienes la base de datos del ejemplo, tendrás que crear la tabla. Es importante que te fijes en varios aspectos, como los campos que va a tener. Antes hablábamos de tres campos: nombre, correo electrónico y mensaje.
Por lo tanto, haremos una selección de cuatro campos. El primero de ellos se utilizará como columna que ayudará a mantener la relación de la numeración (id).
Los demás campos serán los que te hemos indicado con anterioridad: nombre (fldName), correo (fldEmail) y mensaje (fldMessage). Para terminar, pulsa en el botón de guardar. Eso hará que la tabla se haya creado automáticamente dentro de tu base de datos.
Como ya tienes tanto la base de datos como la tabla, introduce el siguiente código SQL en la interfaz gráfica de usuario de MySQL en phpmyadmin.
--
-- Table structure for table 'tbl_contact'
--
DROP TABLE IF EXISTS tbl_contact;
CREATE TABLE IF NOT EXISTS tbl_contact (
id int(11) NOT NULL,
fldName varchar(50) NOT NULL,
fldEmail varchar(150) NOT NULL,
fldMessage text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Indexes for dumped tables
--
--
-- Indexes for table 'tbl_contact'
--
ALTER TABLE tbl_contact
ADD PRIMARY KEY (id);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table 'tbl_contact'
--
ALTER TABLE tbl_contact
MODIFY id int(11) NOT NULL AUTO_INCREMENT;
Paso 3. Conecta tu base de datos con el uso de HTML
El proceso todavía no ha terminado, pero falta poco. Ahora lo que tienes que hacer es crear el formulario HTML que servirá de punto de conexión. Ingresa a XAMPP y entra a «explorer» y luego a «htdocs».
Haz una carpeta y dentro de ella crea el archivo «contact.html» y «contact.php».
En el archivo html tendrás que incluir este código.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Contact Form – PHP/MySQL Demo Code</title>
</head>
<body>
<fieldset>
<legend>Contact Form</legend>
<form method="post" action="contact.php">
<p>
<label for="Name">Name </label>
<input type="text" name="txtName" id="txtName">
</p>
<p>
<label for="email">Email</label>
<input type="text" name="txtEmail" id="txtEmail">
</p>
<p>
<label for="message">Message</label>
<textarea name="txtMessage" id="txtMessage"></textarea>
</p>
<p> </p>
<p>
<input type="submit" name="submit" id="submit" value="submit">
</p>
</form>
</fieldset>
</body>
</html>
Como puedes ver en el código, se hace referencia a los tres campos del formulario: name, email y message. Es importante que a medida que sigues este tutorial, entiendes cada paso que des, ya que te va a servir como punto de referencia para casos futuros en los que vuelvas a llevar a cabo un proceso similar.
Ahora que has introducido el código del HTML, comprueba que esté listo. Para ello, entra en la dirección http://localhost/contact/contact.html que hace referencia al contenido con el que estás trabajando en tu propio servidor.
Paso 4. Guarda los datos del formulario PHP en tu base de datos MySQL
Todo el proceso que hemos ido realizado paso a paso tenía un objetivo concreto con el cual hemos comenzado esta guía en mente. Ahora ya tienes una página HTML con el formulario que se encargará de recopilar los datos que introduzcan los usuarios.
Y lo que quieres es llevar esos datos para que se guarden en la base de datos , ya que eso tendrá una gran variedad de aplicaciones. Para ello, tienes que conectar ambos lados. Lo puedes hacer usando el siguiente código:
$con = mysqli_connect("localhost","tu_usuario_de_basededatos_de_localhost"," tu_contraseña_de_basededatos_de_localhost","tu_basededatos_de_localhost");
Cambia los valores que te hemos indicado con los que correspondan según tu caso concreto. Se podría dar la situación de que no tengas una contraseña o nombre de usuario. Eso requerirá trabajo adicional y recordarte que siempre es fundamental almacenar las contraseñas y datos de acceso.
Si todavía no has conseguido la contraseña y el nombre de usuario, es posible que quieras probar la configuración estándar que suelen tener las bases de datos de MySQL: «root» en ambos casos o en el caso de la contraseña: «». Es una apuesta arriesgada, pero merece la pena probarlo.
Lo primero es obtener los valores del formulario vía POST:
$txtName = $_POST['txtName'];
$txtEmail = $_POST['txtEmail'];
$txtMessage = $_POST['txtMessage'];
Lo siguiente es introducirlos a la base de datos con un insert:
$sql = "INSERT INTO tbl_contact (Id, fldName, fldEmail, fldMessage) VALUES ('0', '$txtName', '$txtEmail', '$txtMessage');"
Y, para guardar los datos en MySQL, recurre a este último código:
// insert in database
$rs = mysqli_query($con, $sql);
Al final, el código completo con el que te quedarás se verá de la siguiente forma. Asimismo, recuerda siempre revisar todo código que introduzcas y, sobre todo, probarlo:
El siguiente código tienes que copiarlo en «contact.php»
<?php
// database connection code
// $con = mysqli_connect('localhost', 'usuariodelabasededatos', 'passworddelabasededatos','basededatos');
$con = mysqli_connect('localhost', 'root','','db_contact');
// get the post records
$txtName = $_POST['txtName'];
$txtEmail = $_POST['txtEmail'];
$txtMessage = $_POST['txtMessage'];
// database insert SQL code
$sql = "INSERT INTO tbl_contact (id, fldName, fldEmail, fldMessage) VALUES ('0', '$txtName', '$txtEmail', '$txtMessage')";
// insert in database
$rs = mysqli_query($con, $sql);
if($rs)
{
echo "Contact Records Inserted";
}
?>
Llegados a este punto, te indicamos que si estás notando cierta dificultad para seguir este tutorial deberías consultar alguna de las formaciones de PHP que te recomendamos aquí.
Todo este código es un ejemplo que puedes utilizar como referencia a la hora de repetir el proceso en un contexto de mayor o menor envergadura. Como te hemos comentado, no hay nada que impida que tu formulario pueda tener más campos. Lo único que tendrás que hacer será aumentar el código y editarlo con las distintas necesidades que tengas.
Recuerda que, si el código PHP te resulta complicado o este tipo de guía te ha resultado muy enrevesada, lo mejor será que hagas un curso especializado. A base de hacer ejemplos, escuchar explicaciones detalladas y contar con un maestro al que hacerle dudas, seguro que aprendes todo lo que necesitas.