Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ewerton Madeira

Selecionar dias da semana (Domingo, Segunda, Terça, etc.)

Recommended Posts

Boa tarde pessoal!

 

Eu tenho um site onde há páginas de vários estabelecimentos. Nem todos estes estabelecimentos funcionam todos os dias da semana, então eu tenho que bloquear a página para os dias em que determinado estabelecimento não estiver funcionando.

 

O que eu precisaria é montar uma sql que me permitiria selecionar o dia da semana, ex: Domingo, Segunda, Terça, etc.

 

Obs.: A linguagem utilizada é PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O MySql consegue retornar isso pra você:

 

 

 

  • DAYOFWEEK(data)

Retorna o índice do dia da semana para data (1 = Domingo, 2 = Segunda, ... 7 = Sábado). Estes valores de índices correspondem ao padrão ODBC.

 

Retirado do site do MySql - http://ftp.nchu.edu.tw/MySQL/doc/refman/4.1/pt/date-and-time-functions.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou aqui Roberto, obrigado!

 

Agora eu estou com outra dúvida. Eu criei uma variável e atribui o valor do "current_date" depois criei outra variável atribui um vetor com os números referentes aos dias em que a página ficará aberta, mas não está funcionando. Independente do valor do vetor o PHP só reconhece como se as variáveis fossem diferentes. Segue o código.

 

$sql = "SELECT DAYOFWEEK(current_date) as hoje";
$qr = mysql_query($sql);
$ln = mysql_fetch_assoc($qr);
$diaHoje = $ln['hoje'];
$diasAbertos = array(1, 2, 3, 5, 6, 7);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use o IN do SQL

 

algo como

 

 

select *
from tabela
where DAYOFWEEK(current_date) in (1, 2, 3, 5, 6, 7)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use o IN do SQL

 

algo como

 

select *
from tabela
where DAYOFWEEK(current_date) in (1, 2, 3, 5, 6, 7)

 

Motta, desculpe mas não entendi como o IN se aplicaria a minha situação.

Eu preciso comprar as duas variáveis pra saber se são iguais. Eu preciso saber se o $diaHoje é igual á algum valor no vetor $diasAbertos. Mas quando eu coloco da maneira abaixo sempre me retorna como diferente.

 

$sql = "SELECT DAYOFWEEK(current_date) as hoje";
$qr = mysql_query($sql);
$ln = mysql_fetch_assoc($qr);
$diaHoje = $ln['hoje'];
$diasAbertos = array(1, 2, 3, 4, 5, 6, 7);

if($diaHoje == $diasAbertos){...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu consegui resolver da seguinte forma.:

 

Coloquei a variável $diaHoje pra ser o índice do vetor, só que como os vetores começam a contar do "0" eu coloquei a variável - 1. Segue o Código.

 

$sql = "SELECT DAYOFWEEK(current_date) as hoje";
$qr = mysql_query($sql);
$ln = mysql_fetch_assoc($qr);
$diaHoje = $ln['hoje'];
$diasAbertos = array(1, 2, 3, 4, 5, 6, 7);

if($diaHoje == $diasAbertos[$diahoje-1]){
    ...
} else {
    ...
  }

 

Obrigado a todos pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.