1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Remoção de registo automatico, sem intervenção humana

Discussão em 'Web Development' iniciada por DarkWolfXP, 23 de Fevereiro de 2008. (Respostas: 4; Visualizações: 589)

  1. DarkWolfXP

    DarkWolfXP Power Member

    Boas, venho outra vez a pedir o vosso auxilio ^^, eu neste momento possuo uma questão... pertinente... Vejamos o seguinte exemplo:
    Um cliente compra um produto, e esse produto é valido por 2meses....
    Quando cliente faz o pedido, eu posso aceitar ou não o pedido que ele realizou, caso eu aprove o pedido, será registado na base de dados...
    -Nesta parte gostaria de saber quando uso date(); esta função mostra-me a data que está definida no meu computador ou a data que está definida no servidor?
    -Após a aprovação e a inserção da data na base de dados, como faço para que nakele dia e 2 meses depois em que foi aprovado o produto, o produto deixe de ter validade....?
    -Como posso fazer uma script que corra automaticamente...? Sem a minha intevenção... verficando o seguinte:
    Código:
    //data em que foi aprovada
    $datestart
    //date em que irá ficar fora de validade
    $dateend
    if($datestart == $dateend){
    //remove da base de dados o registo do produto
    }else{
    ....
    
    Este código, seria valido se o date(); fosse a data definida no servidor, caso seja, eu não estou a ver como posso por o codigo acima descrito a funcionar automaticamente... sem intervenção humana :lol:
    Alguma sugestão?
     
    Última edição: 23 de Fevereiro de 2008
  2. AliFromCairo

    AliFromCairo Power Member

    Sim, a função date devolve a data do servidor onde os scripts PHP estão a correr. Em relação à remoção de registos de forma automática, podes usar um trigger temporal se o SGBD que estás a utilizar suportar. As últimas versões do MySQL suportam este tipo de triggers sobre o nome de schedulers.
     
  3. mascker

    mascker Power Member

    Boas,

    E que tal um cron diário?

    Parece ser a solução mais fácil e rápida.


    Saudações.
     
  4. hasta.g5

    hasta.g5 I quit My Job for Folding

    Usando apenas PHP, podes faze-lo de maneira a que sempre que aceda à informação desse produto, verifique a data de validade e, caso esteja "fora de prazo", elimine. Por exemplo:
    PHP:
    // Gravas na base de dados a data em que foi criado e a validade
    $baseDeDados->gravarCriacaodate'dmY' ) );
    $baseDeDados->gravarFimdate'dmY',mktime0,0,0,date('m')+2,date('d'),date('Y') ) ) );
    Depois, para verificares
    PHP:
    $hoje date'dmY' );
    $datafim$baseDeDados->irBuscarFim();

    $diferenca intval($datafim) - intval($hoje);

    if( 
    $diferenca ) {
         
    // Já expirou, remover
    }
    else {
         
    // Ainda não expirou
    }
    Deve funcionar, só testando.
     
    Última edição: 25 de Fevereiro de 2008
  5. AliFromCairo

    AliFromCairo Power Member

    Sim, mas isso implica a permanência do registo na base de dados, até alguém consultar alguma informação referente a esse mesmo registo; o que pode não acontecer.

    No que diz respeito ao cron, é uma alternativa se o SGBD não suportar triggers temporais.
     

Partilhar esta Página