![]() |
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?? |
Respuesta: help! Store Procedures con DATEDIFF Hola, oye yo necesito lo mismo, si lo pudiste resolver?? me das algun tip??!! se te agredecera |
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, |
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; |
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:
http://www.google.com/search?q=php+enviar+email Saludos. |
| La zona horaria es GMT -6. Ahora son las 08:13. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.