Evitar contenido duplicado usando PHP y MySQL. La problemática de los usuarios que después de enviar la información a través de un formulario en algunos casos se pone lenta y el usuario actualiza el navegador generando contenido duplicado en nuestra base de datos. Por lo tanto, en este tutorial le enseñaremos cómo evitar el envío duplicado usando PHP y MySQL.
Evitar contenido duplicado usando PHP y MySQL
Uno de los problemas más latentes en el tema de almacenar la información en la bases de datos es el contenido duplicado. Sin embargo, quizá los registros duplicados no le den tanta importancia, pero a largo plazo generara problemas porque nuestra base de datos contendrá datos basura.
Por lo tanto, este problema de duplicidad de registros se puede solucionar de varias formas. Una de las más comunes está en el propio MySQL, aplicando la cláusula UNIQUE a la columna que no deseamos registros duplicados. Sin embargo, esto generara un error por parte de MySQL y el usuario no podrá identificarla intentando acceder su información sin resultados.
En este artículo le proponemos usar una estructura condicional para validar la existencia del registro en la base de datos.
- Si la respuesta de la consulta es mayor a cero, mostrara un mensaje con la leyenda «El registro ya existe».
- Por el contrario si la respuesta es lo opuesto, nos permitirá almacenar el registro y mostrara un mensaje «Registro guardado exitosamente».
Recursos y librería a utilizar
- Lenguaje HTML5
- PHP para hacer la conexión con el servidor de datos
- Framework Bootstrap 3.3
- Una Base de datos MySQL
1. Crear un archivo PHP y definir el formulario de envío de la información
Creamos un archivo PHP utilizando Sublime Text 3 y lo guardamos con un nombre Index.php
<html> <body> <div id="wrapper"> <div id="form_div"> <form action="main.php" method="post"> <input type="text" name="name" placeholder="Ingrese Nombre"/> <input type="text" name="email" placeholder="Ingrese Email"/> <input type="password" name="password" placeholder="********"/> <input type="submit" name="submit_registro" value="REGISTRARME"/> </form> </div> </div> </body> </html>
En este archivo creamos un formulario utilizando el Framework Bootstrap para que nuestro trabajo sea responsiva y estéticamente bien presentable.
2. Crear Base de datos con sus respectivas tablas
CREATE TABLE `usuarios` ( `id` int(11) NOT NULL, `name` varchar(150) DEFAULT NULL, `email` varchar(150) DEFAULT NULL, `password` varchar(150) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; ALTER TABLE `usuarios` ADD PRIMARY KEY (`id`); ALTER TABLE `usuarios` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
3. Crear un archivo php para comprobar y almacenar los datos en la base de datos
- Creamos un archivo php y lo guardamos con un nombre main. Php, el cual será encargado de recibir la información del formulario vía POST y lo procesara.
- Realizara la consulta si existe contenido duplicado en MySQL.
<?php // Validamos si hay resultados if(mysqli_num_rows($result)>0) { // Si es mayor a cero imprimimos que ya existe el usuario echo "Ya existe el registro que intenta registrar"; } else { // Si no hay resultados, ingresamos el registro a la base de datos $sql2 = "INSERT INTO usuarios(name, email, password)VALUES ('$name', '$email', '$pass')"; if (mysqli_query($conn, $sql2)) { // Imprimimos que se ingreso correctamente echo "Nuevo Registro Creado Exitosamente."; } else { // Mostramos si hay algun error al insertar registro echo "Error: " . $sql2 . "" . mysqli_error($conn); } } // Cerramos la conexión $conn->close(); } ?>
Conclusión
De una manera sencilla podemos realizar esta validación y así evitar contenido duplicado en PHP y MySQL. Sin embargo, puede modificar este código para adaptarlo según sus necesidades en el desarrollo de su proyecto web.
No se olvide de suscribirse a nuestro boletín diario, donde llegaran informaciones similares referidas al mundo de la programación, siéntase libre de comentar.