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

Hola,
Tengo una tabla con fechas para calcular precio etc, tiene filas para 20 años.
Cuando añado una propiedad añado fechas desde el año presente hasta 2032 (esto lo calculo con php)

El problema que no sé como resolver es despues de insertar las fechas con el nombre de la propiedad tengo que actualizar las filas con su informacion como precio, temporada etc. para las fechas que se ha elegido en el formulario pero para todos los años hast 2032, es decir por ejemplo 1/7 hasta 31/8 de 2012, 2013, 2014 etc.

Como podría hacerlo sin tener tantos queries?
No sé si hay forma de hacer algo como "where cal_date beween date1 and date2, and date3 and date4 and date 5 and 6 and property= 'property1".

También si es posible me gustaría no tener que cambiar el script de actualización cada año, puedo tener un select multiple etc, el problema esta en el update en mysql.

Si insertará los precios etc a la vez que inserto las fechas y la propiedad tendria el mismo problema, no resolveria nada, ya que cada propiedad tiene diferentes precios y fechas de temporadas, asi que lo mejor es hacerlo con un update, ya que cuando un precio cambia tengo que hacer un update de todas maneras.

A lo mejor se puede hacer algo combinando con php????

En fin no sé por donde empezar y en que camino pensar.

Y no quiero cambiar la tabla por una donde se usa fecha principio de temporada y final de temporada porque eso lo tengo actualmente y me limita a tener todas las propiedades igual y el query es muy complicado para cambiar cada año las fechas de semana santa.
Asi que quiero tener esta de 20 años que funciona perfectamente, solo no sé de que manera insertar la información más comodamente.

Estas son las actualizaciones para una temporada y una propiedad para dos años, si hago lo mismo para 20 años en algunas propiedades la lista de queries será enorme.

Código:
$query = mysql_query("UPDATE calendar_table SET startdate=2012-07-01, enddate=2012-08-31
WHERE cal_date=2012-07-01 and property='$property2'");
$query = mysql_query("UPDATE calendar_table SET startdate=2013-07-01, enddate=2013-08-31
WHERE cal_date=2013-07-01 and property='$property2'");
$query = mysql_query("UPDATE calendar_table SET price_client='$price_client',
price_owner='$price_owner', price_client_week='$price_client_week',
price_owner_week='$price_owner_week', description='$description', 
elena='$elena', elena_n='$elena_n', minimo='$minimo'
WHERE cal_date between 2012-07-01 and 2012-08-31 and property='$property2'");
$query = mysql_query("UPDATE calendar_table SET price_client='$price_client',
price_owner='$price_owner', price_client_week='$price_client_week',
price_owner_week='$price_owner_week', description='$description', 
elena='$elena', elena_n='$elena_n', minimo='$minimo'
WHERE cal_date between 2013-07-01 and 2013-08-31
and property='$property2'");
header ("Location: precios_propiedades_uno.php?property=$property2");
Gracias de antemano