Ver Mensaje Individual
  #11 (permalink)  
Antiguo 02/09/2011, 16:42
josecastro
 
Fecha de Ingreso: agosto-2009
Mensajes: 8
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Rango de fechas seleccionar inverso

Muchas gracias a todos, dejo el código completo gracias a lo escrito por gnzsoloyo, por si a alguien le sirviera en algún momento.

Código PHP:
Ver original
  1. <?php
  2.  
  3. $fecha1 = '2011-09-01'; // Fecha inicial de reserva del cliente
  4. $fecha2 = '2011-09-03'; // Fecha final de reserva del cliente
  5. $bici = 'BT250'; // Modelo de bici
  6.  
  7. // Función para sumar días
  8. function sumaDia($fechainicial,$dia){  
  9.     list($year,$mon,$day) = explode('-',$fechainicial);
  10.     return date('Y-m-d',mktime(0,0,0,$mon,$day+$dia,$year));       
  11. }
  12.  
  13. // Creamos el rango de fechas entre $Fecha1 y $Fecha2
  14. // Creamos la cadena de consulta $asignacion2
  15. for ($i = 0;;$i++) {
  16.     if ($fecha2 < sumaDia($fecha1,$i)) { break; }
  17.     $asignacion = " AND ('". sumaDia($fecha1,$i) ."' NOT BETWEEN fechainicio AND fechafinal)";
  18.     $asignacion2 .= $asignacion;
  19. }
  20.  
  21. // Hacemos la consulta
  22. $muestra="SELECT * FROM reservas WHERE bici='$bici' $asignacion2";
  23. $resultado=mysql_query($muestra);
  24. while ($fila=mysql_fetch_array($resultado)) {
  25.     echo $id = $fila['id'];
  26.     }
  27. ?>