Foros del Web » Programando para Internet » PHP »

Verificar condicion y almacenar datos

Estas en el tema de Verificar condicion y almacenar datos en el foro de PHP en Foros del Web. Hola a todos, estoy almacenando en mi base datos dos campos datetime. Quiero verificar en mi base que el rango de las horas ingresadas no ...
  #1 (permalink)  
Antiguo 02/04/2016, 22:08
Avatar de kip13  
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 12 años, 8 meses
Puntos: 13
Pregunta Verificar condicion y almacenar datos

Hola a todos, estoy almacenando en mi base datos dos campos datetime.

Quiero verificar en mi base que el rango de las horas ingresadas no se encuentren en el rango de uno ya almacenado, tampoco que se repitan el mismo rango de horas y por ultimo que no permita ingresar una de las horas entre alguno de los rangos ya almacenados. Siento ser muy redundante pero creo que asi se entiende mejor.

Adjunto el codigo que tengo:

Código PHP:

<?php 
session_start
();
require (
'/config.php');
$link mysqli_connect("$hotsdb","$usuariodb","$clavedb") or die(mysqli_error());
         
mysqli_select_db$link'calendario');
$banda =  mysqli_real_escape_string($link,$_POST['nombre']);
$start mysqli_real_escape_string($link,$_POST['start']);
$end mysqli_real_escape_string($link,$_POST['end']);
$telf mysqli_real_escape_string($link,$_POST['telf']);
if (
$banda == null || $start == null || $end == null || $telf == null)
{
    echo 
'<span>Por favor complete todos los campos.</span>';
     
mysqli_close($link);
}
else
{
    
$verif1=strtotime '+1 hours' strtotime $start ) ) ;
    
$hora1date 'Y-m-d H:i:s' $verif1 );
    
$verif2=strtotime '-1 hours' strtotime $end ) ) ;
    
$hora2date 'Y-m-d H:i:s' $verif2 );
    
    
    
$consulta="SELECT * from calendar WHERE start AND end BETWEEN '".$hora1."' AND '".$hora2."'"
    
$consulta2="SELECT * from calendar WHERE start = '".$start."' AND end = '".$end."'";  
    
$consulta3="SELECT * from calendar WHERE start AND end BETWEEN '".$start."' AND '".$end."'"
    
$resultfecha=mysqli_query($link$consulta) or die (mysql_error());
    
$resultfecha2=mysqli_query($link$consulta2) or die (mysql_error());   
    
$resultfecha3=mysqli_query($link$consulta3) or die (mysql_error());   
      
    if (
mysqli_num_rows($resultfecha2) != 0) {
        
              echo 
'<span>Horas ya reservadas, eliga otras. </span>';
              
              
              } else {
                  
                     if (
mysqli_num_rows($resultfecha3) != 0) {
                         
                             echo 
'<span>Las horas elegidas interfieren con otras. </span>';
                             
                             
mysqli_close($link);
                             
                           } else {
                               
                                  if (
mysqli_num_rows($resultfecha) != 0){
                                      
                                         
$sql "INSERT INTO calendar (title,start,end,telf) VALUES   ('$banda','$start','$end','$telf')"

         
$result mysqli_query($link$sql);
     
              echo 
'<span>¡Reserva realizada!</span>';
     
              
mysqli_close($link);    
                                      
                                       } else {
                                           
                                              echo 
'<span> Las horas elegidas interfieren con otras reservas. </span>';
                                         
                                         
mysqli_close($link);
                                              
                                              }
                                  
                                  }
                  
                     }
                  

}

?>
Cuando ejecuto ese código cumple con todo pero no me permite almacenar nada, intento almacenar un rango que no se repita o interfiera y no se almacena me dice uno de los mensajes que coloque que esta en el ultimo IF y no entiendo el porque, espero alguien me pueda ayudar.

Muchas gracias y saludos!

Etiquetas: almacenar, condición, duplicados, sentencia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:29.