Ver Mensaje Individual
  #7 (permalink)  
Antiguo 17/01/2012, 11:47
helenp
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: Actualizar varias filas de distintos años

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Parche, sobre parche, sobre parche...
Perdoname, Helenp, pero tienes que partir de la base que es muy posible que para hacer funcional lo que quieres, tengas que hacer modificaciones estructurales a la base de datos.
Yo, vista tu descripción, tengo la fuerte impresión de que el modelo de datos está mal diseñado, y no soporta correctamente lo que quieres hacer.
Necesitar hacer un update masivo por cada vez que tengas modificaciones en los precios me sugiere que el sistema entero no tiene la flexibilidad necesaria y la base no se soporta correctamente los cambios.
Pero si vas a partir de la base de no querer modificar nada de la estructura, es posible que sólo termines haciendo parche sobre parche, hasta que finalmente la cosa no funcione más.

Al margen de esto:
¿Los campos de fecha son DATE o DATETIME?
¿En la iteración del for (programación no es tema de este foro), el primer valor queda mayor o menor al segundo del BETWEEN?
¿Verificaste cómo quedan creadas las sentencias en cada línea?
A ver, Ya tengo una calculadora con otro modelo y me limita en las posibilidades y el query es muy complicado, por lo tanto por consejos de otros mas expertos que yo he hecho una tabla donde tengo una fecha para cada dia del año y tan solo se suma los dias, y comprobado funciona y mejor. A lo primero solo pensaba tener dos años y simplemente actualizar el ultimo año al presente año, pero esta el problema del 29 de febrero, y despues de comprobar que no va lento ni nada decidi meter 20 años en vez de tan solo 2. Pero al tener una fila para cada dia y propiedad cada fila necesita su informacion. Con dos años serian solo 4 queries pero 20 años son 40 queries.

1. Los campos de fecha son DATE
2. No estoy segura si entiendo la pregunta. La iteracion del for, el primer valor es el presente año (y) y el for si hago un echo me da 2012 2013 2014 hasta 2032 (pero sin el espacio). Esos años las quiero usar en los dos valores del between mediante la variable ano2,
$llegada = '$ano2-$month-$day';
$salida = '$año2-$month2-$day2';
osea quiero por ejemplo update 1/7 2012 hasta 31/8 2012 y 1/7 2013 hasta 31/8 2013 y asi hasta 2032. No se si se puede, solo he intentando si es que lo he comprendido lo que sugirio Nano.
3. ¿Verificaste cómo quedan creadas las sentencias en cada línea?
Esta no la entiendo bien tampoco. Si se refiere a si funciona el query o no, si cambio la variable php por una fecha concreta y varios queries funciona perfectamente.

Gracias