Foros del Web » Programando para Internet » PHP »

mensaje de alerta

Estas en el tema de mensaje de alerta en el foro de PHP en Foros del Web. Hola, tengo un sitio para administrar algo como servicios tecnicos, deseo que cuando se cumplan 14 meses de haberse creado la orden del servicio (esta ...
  #1 (permalink)  
Antiguo 21/07/2007, 08:02
 
Fecha de Ingreso: julio-2007
Mensajes: 77
Antigüedad: 16 años, 9 meses
Puntos: 0
mensaje de alerta

Hola, tengo un sitio para administrar algo como servicios tecnicos, deseo que cuando se cumplan 14 meses de haberse creado la orden del servicio (esta contiene fecha de creacion) el sistema me muestre un mensaje indicandome que para la orden numero XXXX se han cumplido 14 meses y el cliente necesita un nuevo servicio. No tengo ni idea de como hacer esto, el mensaje puede ser un alert, o una ventanita que contenga el mensaje, pero que si el dia de hoy ingreso al sistema y hay servicios con 14 meses ya cumplidos el sistema me avise de ello.

Muchas gracias, agradezco a quien me pueda ayudar.
  #2 (permalink)  
Antiguo 21/07/2007, 09:13
 
Fecha de Ingreso: abril-2007
Mensajes: 44
Antigüedad: 17 años
Puntos: 0
Re: mensaje de alerta

Hola.

Se debe almacenar esa orden en la base de datos y despues tener una especie de cron, que te permita comprobar cada dia que si hace 14 meses se creo una orden que te saque un alert en javascript o nueva ventana avisandote de tal hecho.

Este cron puede ser perfectamente un script en PHP donde se calcule el dia actual y que te calcule la fecha 14 meses atrás. Por ultimo comprobar si hay orden registrada con la fecha antes calculada y si es asi avisar con el javascript..

Pienso que es algo facil de conseguir.

PD: Te recomiendo que uses funciones correctas de PHP para tratar las fechas, es decir, date(), time(), mktime(), etc.

http://es.php.net/manual/es/ref.datetime.php

Saludos
  #3 (permalink)  
Antiguo 21/07/2007, 09:15
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Re: mensaje de alerta

No creo necesario usar un cron... puede ejecutarse cada carga de página.
  #4 (permalink)  
Antiguo 21/07/2007, 09:18
 
Fecha de Ingreso: abril-2007
Mensajes: 44
Antigüedad: 17 años
Puntos: 0
Re: mensaje de alerta

Cita:
Iniciado por david_M_G Ver Mensaje
No creo necesario usar un cron... puede ejecutarse cada carga de página.
Hola.

Exacto, a eso me referia, un script que se carge en cada página.
Saludos
  #5 (permalink)  
Antiguo 21/07/2007, 09:35
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Re: mensaje de alerta

Cita:
Iniciado por drito7 Ver Mensaje
Hola.

Exacto, a eso me referia, un script que se carge en cada página.
Saludos
Pero sin recurrir al cron. Al fin y al cabo, es solo una comprobación bastante sencilla que puede resolverse en algo tan simple como IF() (imprime) y ELSE() (no imprime) tan solo contrastando ambas fechas; la de creación y la de "creación+14 meses"

  #6 (permalink)  
Antiguo 21/07/2007, 09:40
 
Fecha de Ingreso: abril-2007
Mensajes: 44
Antigüedad: 17 años
Puntos: 0
Re: mensaje de alerta

Cita:
Iniciado por david_M_G Ver Mensaje
Pero sin recurrir al cron. Al fin y al cabo, es solo una comprobación bastante sencilla que puede resolverse en algo tan simple como IF() (imprime) y ELSE() (no imprime) tan solo contrastando ambas fechas; la de creación y la de "creación+14 meses"

Hola.

Totalmente de acuerdo pero quitando el ELSE(), ya que esto no desencadenará nada.. y no es un tan solo una Sentencia IF sino que antes deberas comprobar y extraer si hay orden a avisar.

Saludos
  #7 (permalink)  
Antiguo 21/07/2007, 09:41
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: mensaje de alerta

hola, bueno creo que si lo quieres con cada recarga de la pagina, con un if lo puedes resolver:
Código PHP:
<?php
$fecha 
date(m); // bueno en realidad aqui recojes el registro del campo fecha de la base de datos

if($fecha == 14){
    echo 
'se cumplieron 14 meses';}
?>
creo que con algo asi lo puedes resolver
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #8 (permalink)  
Antiguo 21/07/2007, 09:44
 
Fecha de Ingreso: abril-2007
Mensajes: 44
Antigüedad: 17 años
Puntos: 0
Re: mensaje de alerta

Cita:
Iniciado por rogertm Ver Mensaje
hola, bueno creo que si lo quieres con cada recarga de la pagina, con un if lo puedes resolver:
Código PHP:
<?php
$fecha 
date(m); // bueno en realidad aqui recojes el registro del campo fecha de la base de datos

if($fecha == 14){
    echo 
'se cumplieron 14 meses';}
?>
creo que con algo asi lo puedes resolver
Hola, creo que como se tiene el codigo no va a funcionar ya que la fecha nunca va a ser 14, nunca hay mes 14, solo tenemos 12.

El date(m) te saca el mes en numero, por ejemplo "enero" es el 1, etc..

Saludos
  #9 (permalink)  
Antiguo 21/07/2007, 09:53
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: mensaje de alerta

Cita:
Iniciado por drito7 Ver Mensaje
Hola, creo que como se tiene el codigo no va a funcionar ya que la fecha nunca va a ser 14, nunca hay mes 14, solo tenemos 12.

El date(m) te saca el mes en numero, por ejemplo "enero" es el 1, etc..

Saludos
bueno si, por eso puse un comentario:
Cita:
$fecha = date(m); // bueno en realidad aqui recojes el registro del campo fecha de la base de datos
por lo de los meses que si son 12, bueno mira:
Código PHP:
$fecha date(m) + 2
y acabo de probarlo, pero bueno, de todas formas es algo bien basico, el debe recoger la fecha de la base de datos, no presisamente de esta manera que yo pongo aqui
Código PHP:
$fecha $row['fecha']; 
o no?
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #10 (permalink)  
Antiguo 21/07/2007, 09:53
 
Fecha de Ingreso: julio-2007
Mensajes: 77
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: mensaje de alerta

Hola, muchas gracias por todas las opiniones, pero lo que quiero hacer y no entendi como hacerlo es lo siguiente:
En mi tabla de la base de datos hay una columna que se llama fecha y todo los dias voy a ingresar muchas registros, entonces la idea es que cuando yo ingrese al sitio este me avise con respescto a hoy cuales de todassssss las ordenes que tienen esas fechas que tengo en la tabla se registraron hace 14 meses para recordarle al cliente que debe solicitar un nuevo servicio.
Muchas gracias al que me ayude
  #11 (permalink)  
Antiguo 21/07/2007, 09:57
 
Fecha de Ingreso: abril-2007
Mensajes: 44
Antigüedad: 17 años
Puntos: 0
Re: mensaje de alerta

Metes este script en cada página con un require o include.

Código PHP:
<? 
$actual
=time();
$hace_catorce_meses=$actual 36288000// Actual menos los segundos de 14 meses
$mes_hace_catorce_meses=date("m",$hace_catorce_meses);
// Ahora conectarias con la base de datos y comprobarias si existe alguna orden cuyo campo mes coincide con este mes antes calculado.
$s="Select * from ordenes where mes=$mes_hace_catorce_meses order by id":
$result=mysql_query($s);
if(
mysql_num_rows($result)!=0
{
    While (
$R=mysql_fetch_array($result))
   {
       
$id_orden=$R['id']; // Cogemos el identificador de  la orden a mostrar
       
$cliente=$R['cliente']; // Cogemos el nombre del cliente
  
?>
    <script language="javascript">
        alert("Aviso nº <?=$id_orden?> :  Cliente: <?=cliente?>");
    </script>
<? 
   
}
}
?>
Saludos y espero que mas o menos le quede claro.
  #12 (permalink)  
Antiguo 21/07/2007, 10:02
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: mensaje de alerta

Cita:
Iniciado por drito7 Ver Mensaje
Hola, creo que como se tiene el codigo no va a funcionar ya que la fecha nunca va a ser 14, nunca hay mes 14, solo tenemos 12.

El date(m) te saca el mes en numero, por ejemplo "enero" es el 1, etc..

Saludos
hola otra vez, SI, tienes razon
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #13 (permalink)  
Antiguo 21/07/2007, 10:02
 
Fecha de Ingreso: julio-2007
Mensajes: 77
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: mensaje de alerta

Hola, muchas gracias, ya asi lo entiendo mas claro, y es lo que quiero hacer, muchas gracias, voy a intentarlo y te cuento.
Abrazos!!!
  #14 (permalink)  
Antiguo 21/07/2007, 10:06
 
Fecha de Ingreso: abril-2007
Mensajes: 44
Antigüedad: 17 años
Puntos: 0
Re: mensaje de alerta

Cita:
Iniciado por dgomez Ver Mensaje
Hola, muchas gracias, ya asi lo entiendo mas claro, y es lo que quiero hacer, muchas gracias, voy a intentarlo y te cuento.
Abrazos!!!
Hola, me alegro por ello...

Oye he escrito el codigo sobre la marcha, no he lo he implementado.. te lo digo por los errores de sintaxis que pueda tener.. tan solo quiero que te quedes con la idea..

Saludos y postea resultados
  #15 (permalink)  
Antiguo 23/07/2007, 14:50
 
Fecha de Ingreso: julio-2007
Mensajes: 77
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: mensaje de alerta

Cita:
Iniciado por drito7 Ver Mensaje
Metes este script en cada página con un require o include.

Código PHP:
<? 
$actual
=time();
$hace_catorce_meses=$actual 36288000// Actual menos los segundos de 14 meses
$mes_hace_catorce_meses=date("m",$hace_catorce_meses);
// Ahora conectarias con la base de datos y comprobarias si existe alguna orden cuyo campo mes coincide con este mes antes calculado.
$s="Select * from ordenes where mes=$mes_hace_catorce_meses order by id":
$result=mysql_query($s);
if(
mysql_num_rows($result)!=0
{
    While (
$R=mysql_fetch_array($result))
   {
       
$id_orden=$R['id']; // Cogemos el identificador de  la orden a mostrar
       
$cliente=$R['cliente']; // Cogemos el nombre del cliente
  
?>
    <script language="javascript">
        alert("Aviso nº <?=$id_orden?> :  Cliente: <?=cliente?>");
    </script>
<? 
   
}
}
?>
Saludos y espero que mas o menos le quede claro.

hola ditro7, hice lo que me dijiste, y entiendo la mayoria pero sucede que en esta linea>

$s="Select * from stf where mes ='$mes_hace_catorce_meses' order by ot";

se hace referencia a al campo mes de mi tabla y yo en mi tabla no tengo solo el mes, tengo toda la fecha en la que fue creada la factura, entonces ahi si no se como hacer para tomar solo el mes y compararlo con el factura.
porfa si sabes ayudame.
  #16 (permalink)  
Antiguo 24/07/2007, 10:22
 
Fecha de Ingreso: abril-2007
Mensajes: 44
Antigüedad: 17 años
Puntos: 0
Re: mensaje de alerta

Cita:
Iniciado por dgomez Ver Mensaje
hola ditro7, hice lo que me dijiste, y entiendo la mayoria pero sucede que en esta linea>

$s="Select * from stf where mes ='$mes_hace_catorce_meses' order by ot";

se hace referencia a al campo mes de mi tabla y yo en mi tabla no tengo solo el mes, tengo toda la fecha en la que fue creada la factura, entonces ahi si no se como hacer para tomar solo el mes y compararlo con el factura.
porfa si sabes ayudame.
Hola.
Primero quise decir:

$s="Select * from stf where mes ='$mes_hace_catorce_meses' order by id";

Pero como tienes grabada la fecha en la base de datos? En qué formato?
Saludos
  #17 (permalink)  
Antiguo 24/07/2007, 14:59
 
Fecha de Ingreso: julio-2007
Mensajes: 77
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: mensaje de alerta

Hola, la fecha e inserta y se guarda en la base de datos, de esta forma, por ejemplo: 2007-07-24, porque el formato Date de mysql es de esta forma: 0000-00-00.
Gracias, pero no te preoucpes ya lo resolvi de otra forma, estoy llamado de nuevo la fecha en la pagina que guarda la factura y asi si me la coloca en la Bd.
Gracias
  #18 (permalink)  
Antiguo 24/07/2007, 20:34
Avatar de xempro  
Fecha de Ingreso: marzo-2007
Ubicación: Chile
Mensajes: 222
Antigüedad: 17 años, 1 mes
Puntos: 6
Re: mensaje de alerta

Te conviene manejarlo a nivel de base de datos utilizando la funcion DATE_ADD()



Siempre sera mas rapido ejecutar una versus la ejecucion de un script php.
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 22:44.