Publicada por heckjp em 02/07/2007 - 18:28h:
* heckjp usa elementary OS

Essa vai para os desenvolvedores em PHP:

Eu sei que soa uma pergunta um tanto quanto besta diga-se de passagem...mas eu estou lidando com 1 sistemas de agendamento de resevas e estou lidando com o travamento para o usuario so conseguir efetuar 1 reserva com 1 semana de antecedencia e a minha pergunta é?
O código que eu fiz vai funcionar ou quando chegar em 1 data que daqui a 7 dias seja no outro mes ele nao vai deixar por estar verificando so o dia e nao a data como 1 todo? A seguir o código:

$hj=date("d",time());
   $maxd=date("d",time())+6;
   
   
      $t = arruma_data(mysql_escape_string($_GET['data']));
      $d=date("d",$t);
   
   
      if ($d<=$hj || $d<=$maxd){
         echo "Erro! Você só pode reservar um item com no máximo 7 dia de antecedência!
";

Desde já agradeço

  
 
Resposta de fabio em 02/07/2007 - 18:42h:
* fabio usa Debian
* fabio tem conceito: 8.9
 


Usa uma query assim ó:

SELECT COUNT(*) FROM reserva WHERE TO_DAYS(now()) - TO_DAYS(data) <= 7 AND usuario='$usuario'

Ela vai retornar o número (COUNT(*)) de reservas que determinado usuário fez nos últimos 7 dias. O cálculo é feito transformando o campo data em dias desde o início do relógio do sistema operacional e subtraindo da data atual (now()). Enfim, só olhar aí em cima que entende :)

Daí é só comparar, se a saída da query for maior que 0, opa... já tem reserva feita.

 
Resposta de heckjp em 02/07/2007 - 18:47h:
* heckjp usa elementary OS
* heckjp tem conceito: nenhum voto.
 


Boa sugestão Fábio...mas a principio eu preciso apenas do travamento da data em si..para que o usuario não consiga reservar com menos de 1 semana de antecedencia...

 
Resposta de eyglys em 02/07/2007 - 22:50h:
* eyglys usa Ubuntu
* eyglys tem conceito: 9.8
 


$UmaSemana = strtotime("+1 week");
$dataDesejada = arruma_data(mysql_escape_string($_GET['data'])); //estou supondo que sua função arruma_data, coloca a data do usuário no formato UNIX TIMESTAMP (casão não faça, favor olhar documentação da função mktime()

if ($dataDesejada >= $UmaSemana) {
//efetua a reserva
} else {
//prazo de reserva inválido
}

  


ATENÇÃO: Antes de contribuir com uma resposta, leia o artigo Qualidade de respostas e certifique-se de que esteja realmente contribuindo com a comunidade. Muitas vezes o ímpeto de contribuir nos leva a atrapalhar ao invés de ajudar.

Contribuir com resposta



CAPTCHA
[ Recarregar imagem ]

Digite o código acima:

  
* Nota: só é possível enviar respostas usuário que possui conta e esteja logado com ela, caso contrário sua mensagem será perdida.



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts