Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Update sql con dos variables

Estas en el tema de Update sql con dos variables en el foro de PHP en Foros del Web. Y acá voy con otra duda. Necesito hacer un UPDATE en mi bd, pero no me está reconociendo el valor de una variable y no ...
  #1 (permalink)  
Antiguo 16/03/2014, 17:23
Avatar de key975  
Fecha de Ingreso: marzo-2014
Ubicación: Obligado, Itapúa
Mensajes: 11
Antigüedad: 10 años, 8 meses
Puntos: 0
Update sql con dos variables

Y acá voy con otra duda.
Necesito hacer un UPDATE en mi bd, pero no me está reconociendo el valor de una variable y no entiendo porqué!
Acá va el código:
Código SQL:
Ver original
  1. FOR ($i=0;$i<COUNT($habitacion);$i++)  {
  2.             FOR ($i = $fecha_inicio; $i <= $fecha_fin; $i++) {
  3.             $sql= "UPDATE hab_x_cal set estado='Ocupado' where id_habitacion=".$habitacion[$i]." AND fecha='$i'";
  4.             }
  5.         }
El valor de $habitacion es un array porque el cliente puede querer registrar varias habitaciones a su nombre. El for de abajo sirve para hacer el UPDATE de los campos que ya tengo en mi BD pero quiero que ahora aparezcan como ocupadas esas fechas. Sin embargo, cuando imprimo mi consulta me aparece lo siguiente,
Código SQL:
Ver original
  1. UPDATE hab_x_cal SET estado='Ocupado' WHERE id_habitacion= AND fecha='2014-03-04'
que significa que por alguna razón no recibe el valor de habitación! Y me perdí :|
Alguna idea?
  #2 (permalink)  
Antiguo 16/03/2014, 17:27
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Update sql con dos variables

Cita:
que significa que por alguna razón no recibe el valor de habitación!
Significa que tienes un error de programación en PHP, y eso no tiene nada que ver con MySQL o BBDD.

OFF-TOPIC en MySQL.

Movido al foro de PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 16/03/2014, 17:31
Avatar de key975  
Fecha de Ingreso: marzo-2014
Ubicación: Obligado, Itapúa
Mensajes: 11
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Update sql con dos variables

Bien, es mi segundo post, y en el primero aclaraba que soy nueva, y de seguro alguna regla me voy a saltar :| Perdon.
Ahora, se que no es nada complicado, pero estoy tan dormida que ya no veo mis errores y tengo que entregar mañana :/
Alguien amable que vea mi gran error?
Desde ya gracias.
  #4 (permalink)  
Antiguo 16/03/2014, 17:56
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Update sql con dos variables

Pues, tres cosas:
1) Mira con cuidado lo que estás codificando. Yo al menos estoy viendo que sobreescribes la variable $i, lo cual es una soberana metida de pata.
No puedes usar la misma variable en un FOR anidado. Eso está mal.
2) Acostúmbrate a postear el código completo que usas. Sobre todo las partes de donde se originan los valores, porque el error bien podría haber estado mucho más arriba, y estaríamos días debatiendo sobre la base de codigos incompletos.
3) FDW no es un foro de asistencia pago, no trabajamos aquí, sino que colaboramos en base al tiempo de que disponemos. Por ende, no puedes pretender venir un domingo a las 20:00 hs (Arg) buscando una solución para un trabajo a entregar el lunes a la mañana... Al menos tienes que venir antes. La provisión de chalecos salvavidas que tenemos es muy limitada.

Verifica lo que te dije.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 16/03/2014, 18:43
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
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
  #6 (permalink)  
Antiguo 17/03/2014, 05:10
Avatar de key975  
Fecha de Ingreso: marzo-2014
Ubicación: Obligado, Itapúa
Mensajes: 11
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Update sql con dos variables

Chicos, gracias por las respuestas. Igual ayer después de postear vi que era una tontería. Estaba tan cansada que olvidé cambiar mis variables y era obvio que no iba a funcionar.
Alexis88, es una idea interesante, tendría que implementarla cuando tenga un poco más de tiempo.
Y gnzsoloyo, repito, voy aprendiendo cómo trabajar con ustedes. Agradezco inmensamente que se tomen el tiempo de responder, y de seguro muy pronto (si me lo permiten) también estaré colaborando con ustedes en lo poco que ya conozco.

Etiquetas: campo, mysql, sql, update, variables
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 14:11.