Nueva pregunta

Pregunta:

 
  0  
 
Fecha: 29-05-2015 04:58:32 (En Español)

Como validar dos campos para que la información no se repita en la base de datos.[Resuelta]

Hola, soy nuevo en esto de la programación y quisiera saber como validar dos campos para que la información no se repita en la base de datos.

Esto es lo que tengo:

$mensaje = "Nombre: $nombre\n\n";
$mensaje .= "Correo: $correo\n\n";
$mensaje .= "Apellido: $apellido\n\n";
$mensaje .= "Horario: $horario\n\n";
$mensaje .= "Telefono: $telefono\n\n";
$mensaje .= "Fecha: $fecha\n\n";

Los campos que no quiero que se repitan son la fecha y horario, que cuando el usuario entre la misma fecha y el mismo horario le diga que ya están tomados.

Gracias si me pueden ayudar en esto.
Etiquetas: Base de Datos - PHP - Pregunta - Seguridad - Validaciones Votos: 0 - Respuestas: 4 - Vistas: 18 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 29-05-2015 07:22:15 Hola Juan,
    Hay varios acercamientos que puedes tomar.
    Te voy a dar un ejemplo que aplica para la capa de base de datos y para la aplicación.
    1. Obviamente quieres proteger tu base de datos y que no hayan registros con una fecha y hora repetida, para esto yo sencillamente pondría un índice del tipo UNIQUE sobre estos dos campos y con eso ya garantizas que la base de datos no aceptará datos repetidos.
    2. A nivel de aplicación puedes hacer un query que te devuelva el número de registros para la tupla fecha-horario, si tu resultado es cero procedes al siguiente paso de tu lógica, si es cualquier otro entero positivo entonces cancelas.

    SELECT COUNT(*) FROM [tabla] WHERE fecha = [valorFecha] AND hora = [valorHora]
      Votos: 0 - Link respuesta
     
  •  
      0  
     
    Fecha: 29-05-2015 08:29:53 Ok. buena explicación, ahora como hago para devolver un mensaje diciendo que la fecha ya esta domada, porque el que hice no me funciona.   Votos: 0 - Link respuesta
     
  • Fecha: 29-05-2015 08:53:41 De manera muy burda y a manera de ejemplo:

    $returnMessage = '';
    //La variable countResult contiene el resultado del query que te mencioné anteriormente
    if($countResult>0){
        $returnMessage = 'Ese espacio ya está ocupado, favor de seleccionar otro.';
    }
    else{
        //Tu lógica normal
        $returnMessage = 'Hora reservada. Gracias!';
    }
    
    echo $returnMessage;
    
    
      Votos: 0 - Link respuesta
     
  •  
      0  
     
    Fecha: 30-05-2015 12:08:51 Gracias, me ayudo muchísimo...   Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com