¿ Cómo puedo evitar registros duplicados con PDO y SQL ? solucionado

Iniciado por soujirito, 19 Diciembre 2017, 10:41 AM

0 Miembros y 1 Visitante están viendo este tema.

soujirito

Eh solucionado el tema del formulario y la bsdd, asignando una clave foranea al Id, y una clave primaria al correo, de esa manera, solamente compara el campo email con la bsdd y si es igual, no inserta el sql ! gracias de todos modos por la ayuda :D.

La idea era no repetir el mismo registro dos veces, y conseguido bualá ! :silbar: :silbar:

un saludo...!

Pego el código por si alguien lo necesita !

-- phpMyAdmin SQL Dump
-- version 4.7.4
-- https://www.phpmyadmin.net/
--
-- Servidor: 127.0.0.1
-- Tiempo de generación: 22-12-2017 a las 20:10:29
-- Versión del servidor: 10.1.28-MariaDB
-- Versión de PHP: 7.1.11

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Base de datos: `aula_plus`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `usuarios`
--

CREATE TABLE `usuarios` (
  `nombre` varchar(50) COLLATE utf8_spanish2_ci NOT NULL,
  `apellidos` varchar(50) COLLATE utf8_spanish2_ci NOT NULL,
  `comunidad_autonoma` varchar(255) COLLATE utf8_spanish2_ci NOT NULL,
  `elegir_tema` varchar(255) COLLATE utf8_spanish2_ci NOT NULL,
  `comentario` text COLLATE utf8_spanish2_ci NOT NULL,
  `pregunta` text COLLATE utf8_spanish2_ci NOT NULL,
  `password` varchar(100) COLLATE utf8_spanish2_ci NOT NULL,
  `id` int(11) NOT NULL,
  `correo` varchar(100) COLLATE utf8_spanish2_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci;

--
-- Volcado de datos para la tabla `usuarios`
--

INSERT INTO `usuarios` (`nombre`, `apellidos`, `comunidad_autonoma`, `elegir_tema`, `comentario`, `pregunta`, `password`, `id`, `correo`) VALUES
('Usuariol', 'apellidos1', 'Región de Murcia', 'Enfermería', 'ssssssssssss', 'ssssssssssss', '$2y$10$amDvsmYpTQ89m2utzIxmAe58Gs1nBTLRRuS/2mvzlKIjaBJlUvXf.', 3, 'aa@gmail.com'),
('Usuario2', 'apellidos2', 'Región de Murcia', 'Enfermería', 'ssssssssssss', 'ssssssssssss', '$2y$10$3XaAuV/IUtMAcJFJtDRboOzlaZD/hsxS4uV91wwNkFvWPFq9B9R.a', 1, 'ss@gmail.com');

--
-- Índices para tablas volcadas
--

--
-- Indices de la tabla `usuarios`
--
ALTER TABLE `usuarios`
  ADD PRIMARY KEY (`correo`),
  ADD KEY `id` (`id`);

--
-- AUTO_INCREMENT de las tablas volcadas
--

--
-- AUTO_INCREMENT de la tabla `usuarios`
--
ALTER TABLE `usuarios`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

engel lex

No leí el código (los códigos deben ir en etiquetas GeSHi)

Pero claramente es cosa de estudiar un poco más de MySQL, primero que nada, si hay valores que no deben repetirse, en la tabla configuraa el campo como único
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

soujirito

si en eso estoy por las tardes haciendo un curso del sef de BSDD, jeje, a ver si el profe me echa una mano, seguro que es algo sencillo de hacer. Seguiré buscando o a ver si algún compi puede mirarlo mejor y echarme una mano gracias jeje.