Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

help! Store Procedures con DATEDIFF

Estas en el tema de help! Store Procedures con DATEDIFF en el foro de Mysql en Foros del Web. Tengo un problema para crear un store procedure en Mysql 5.0 tengo una tabla llamada eventos con 5 tuplas, la fecha actual es 2008/05/07 ---------|----------------|---------| ...
  #1 (permalink)  
Antiguo 07/05/2008, 12:12
 
Fecha de Ingreso: mayo-2008
Mensajes: 1
Antigüedad: 15 años, 11 meses
Puntos: 0
Información help! Store Procedures con DATEDIFF

Tengo un problema para crear un store procedure en Mysql 5.0

tengo una tabla llamada eventos con 5 tuplas, la fecha actual es 2008/05/07

---------|----------------|---------|
eid | event_date | active |
---------|----------------|---------|
1 |2008/05/01 | 1 |
---------|----------------|---------|
2 |2008/05/02 | 1 |
---------|----------------|---------|
3 |2008/05/03 | 1 |
---------|----------------|---------|
4 |2008/05/20 | 1 |
---------|----------------|---------|
5 |2008/05/21 | 1 |
---------|----------------|---------|

Lo que necesito es crear un store procedure que usando datediff, recorra TODOS los
valores de la tabla automaticamente y actualize la columna "active", con 0 para eventos pasados y mantenga el "1" si aun es un evento futuro.

Tengo el siguiente codigo que efectua la operacion pero enviando por parametro el id de la tupla:

DELIMITER $$

DROP PROCEDURE IF EXISTS event_update $$
CREATE PROCEDURE event_update (id int )
BEGIN

IF (id = 0) THEN
SET id = null;
END IF;

IF (id IS NOT NULL) AND ((SELECT DATEDIFF(curdate(),event_date) FROM eventos WHERE active='1' AND eid='id')<0)
THEN
UPDATE eventos SET active=0 WHERE eid='id';

END IF;
END $$

DELIMITER ;

Luego desde una hoja php, llamo el SP:
$myspcall = mysqli_query($dbc, "CALL event_update($id)");

esto me obliga ha primero efectuar una consulta, usar mysql_fetch_array() y pasar cada id por parametro.

Lo que necesito es hacer q la BD efectue el store procedure sin necesidad del parametro, es decir recorra toda la tabla y actualiza los valores comparando la fecha en la BD con la fecha actual.

Alguien puede ayudarme porfavor??
  #2 (permalink)  
Antiguo 27/08/2008, 17:51
 
Fecha de Ingreso: noviembre-2003
Mensajes: 343
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: help! Store Procedures con DATEDIFF

Hola, oye yo necesito lo mismo, si lo pudiste resolver?? me das algun tip??!! se te agredecera
__________________


La tecnología es un hecho objetivo, y el resultado está sujeto a la voluntad humana.
  #3 (permalink)  
Antiguo 27/08/2008, 18:26
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: help! Store Procedures con DATEDIFF

Hola Berletzis,

No sé si mmb000 logró su objetivo, pero creo que pudo haber sido mucho más fácil.

update eventos set active = 0 where datediff(event_date, CURRENT_TIMESTAMP) < 0;

Actualizar todos los eventos (actualizar activo a 0) donde la diferencia en días del evento sea menor que 0 -- negativos -- (si fuera un evento futuro genera valores positivos).

Saludos,
  #4 (permalink)  
Antiguo 27/08/2008, 18:36
 
Fecha de Ingreso: noviembre-2003
Mensajes: 343
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: help! Store Procedures con DATEDIFF

Vientos muchas gracias, ahora tengo ke ver como meterlo en un SP, nunca he hecho uno

oye si tienes tiempo que me recomiendas para que una ves que actualice los status.. mande un correo a la direccion en un campo de esa tabla. ???

sabes de algo de donde pueda estudiarle o bajar o X cosa ?? mil gracias


update eventos set active = 0 where datediff(event_date, CURRENT_TIMESTAMP) < 0;
__________________


La tecnología es un hecho objetivo, y el resultado está sujeto a la voluntad humana.
  #5 (permalink)  
Antiguo 27/08/2008, 19:29
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: help! Store Procedures con DATEDIFF

Hola,
Revisa la siguiente documentacion :

Crear procedimientos almacenados...
http://dev.mysql.com/doc/refman/5.0/...procedure.html

Ejecutar una query desde PHP...
http://www.php.net/manual/es/function.mysql-query.php

Utilizar la sentencia CALL para ejecutar stored procs...
http://dev.mysql.com/doc/refman/5.0/es/call.html

Cita:
sabes de algo de donde pueda estudiarle o bajar o X cosa ?? mil gracias
¿ Para que enviarte 1 link si puedes tener 20.500.000 ?
http://www.google.com/search?q=php+enviar+email

Saludos.
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 15:57.