Ver Mensaje Individual
  #5 (permalink)  
Antiguo 16/03/2014, 18:43
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 4 meses
Puntos: 977
Respuesta: Update sql con dos variables

Creo que sería más conveniente si en dicha tabla almacenaras el número de la habitación y los intervalos de las fechas en que estará ocupada, así evitarías realizar N consultas por cada fecha dentro del intervalo.

Para ese caso, podrías trabajar con un array multidimensional, es decir, un array de arrays, en el cual cada array del array padre, contendrá el número de la habitación, la fecha de inicio y la de fin de ocupación de la misma. Por ejemplo, supongamos que el array multidimensional esté formado así:

Código HTML:
Ver original
  1. Array
  2. (
  3.     [0] => Array
  4.         (
  5.             [hab] => 1
  6.             [ini] => 2014-03-12
  7.             [fin] => 2014-03-17
  8.         )
  9.  
  10.     [1] => Array
  11.         (
  12.             [hab] => 3
  13.             [ini] => 2014-04-08
  14.             [fin] => 2014-04-09
  15.         )
  16.  
  17.     [2] => Array
  18.         (
  19.             [hab] => 12
  20.             [ini] => 2014-06-10
  21.             [fin] => 2014-06-12
  22.         )
  23.  
  24.     [3] => Array
  25.         (
  26.             [hab] => 9
  27.             [ini] => 2014-07-19
  28.             [fin] => 2014-07-31
  29.         )
  30.  
  31.     [4] => Array
  32.         (
  33.             [hab] => 14
  34.             [ini] => 2014-03-11
  35.             [fin] => 2014-03-13
  36.         )
  37.  
  38. )

En este ejemplo, el array padre tiene cinco arrays hijos, cada uno con el número de la habitación, fecha de inicio y fin de ocupación. La actualización en la BD la harías de la siguiente forma:

Código PHP:
Ver original
  1. foreach ($habitaciones as $habitacion) {
  2.     $query = mysqli_query($conexion, sprintf("UPDATE hab_x_cal SET fechaInicio = '%s', fechaFin = '%s', estado = 'ocupado' WHERE id_habitacion = %d", $habitacion['ini'], $habitacion['fin'], $habitacion['hab']));
  3. }

De este modo, utilizas un solo bucle y mantienes la relación entre las fechas, estado y cada habitación.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand