Ir para conteúdo

POWERED BY:

Arquivado

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

ilustrando

Apresentar Registro durante tempo determinado

Recommended Posts

Olá meus caros amigos, estou com uma dúvida e se alguém puder me ajudar, ficaria grato.

 

Pode ser que seja coisa simples, mas de verdade, não sei como fazer isso.

 

Seguinte, tenho em uma página PHP uma div com duas apresentação (Em Andamento e Próxima Aula). O que acontece, é para apresentar a aula que esta em andamento em "tempo real" e a próxima aula, tudo de acordo com a hora em que a página estiver sendo acessada.

 

Por exemplo, tenho as seguintes informações (vou colocar duas só para ilustrar, para uma academia):

Horário | Segunda | Terça | Quarta | Quinta | Sexta

08:00 às 09:15 | Bike | Step | Abdominal | Bike | Body Combat

09:00 às 09:45 | Alongamento | Bike | Step | Body Jump | Abdominal

 

Se estivéssemos na quarta feira às 08:10 por exemplo, onde esta "em andamento" iria apresentar Abdominal e onde estaria "próxima aula" apresentaria Step. O que acontece é que eu gostaria de saber como fazer isso e, apresentasse o Abdominal entre 08:00 até 09:15 e assim que passasse do horário final, mudasse apresentasse Step onde esta "em andamento" e assim por diante, tudo de acordo com o dia e horário atual, lembrando que o nome da aula deve aparecer durante sua execução ou horário de inicio e fim.

 

Se alguém puder me ajudar ou me dar alguma coisa para que eu saiba o caminho para fazer isso, ficaria grato.

 

Não sei se expliquei de forma confusa.

 

Obrigado pela ajuda pessoal, abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma coisa é estar agendado, outra é estar de fato "em andamento".

O instrutor pode não ter ido, atrasado etc.

 

Creio que falta uma confirmação de que a a aula está de fato em anadamento, e depois uma que está encerrada.

 

Depois isto uma query simples com um refresh de tempos em tempos resolve a questão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Motta, primeiramente, muito obrigado pela sua disposição em ajudar.

 

Eu entendi bem o ponto que você colocou, mas no caso o sistema é automático mesmo, as aulas no caso da falta de algum professor ou atraso é feita ou executada por outro que sempre esta de prontidão no caso disso acontecer.

 

Uma dúvida seria, esta query com refresh de tempos em tempos, como eu poderia fazer isso?

Pois a princípio havia feito que mudaria caso o usuário desse um refresh na página, mas acho que mudando automaticamente seria melhor né?

É isso o que você quis dizer né? Será se no mysql tem como fazer isso?

 

Mais uma vez, agradeço pela sua disposição e ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O refresh fica a carga da camada de aplicação, no caso php, creio.

Não conheço php mas não deve ser complicado fazer.

 

A query em si é simples , use o BETWEEN para localizar a data.hora corrente contra a data.hora de.ate cadastrada no banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta, muito obrigado pela sua ajuda.

 

Eu fiz desta forma e deu certo:

 

SELECT * FROM aula_hora
WHERE (CURRENT_TIME >= hora_inicio ) AND (CURRENT_TIME <= hora_fim) ORDER BY hora_inicio ASC
Agora fica faltando só eu ver esse negócio ai do refresh "automático" para que faça a alteração sem que a pessoa precise recarregar o site.
Vou tentando aqui até chegar a uma solução...rsrsrs
Assim que conseguir, eu posto como resolvi.
Tenho uma outra dúvida, mas é de como apresentar agora a tabela de horários, será se você pode me ajudar?
Estou tentando um INNER JOIN mas acho que estou fazendo errado.
Não sei se posso aproveitar já este tópico.... se puder, me fala que eu já aproveito este mesmo.
Cara, muito obrigado pela disposição. Desde já agradeço pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste a estrutura das tabelas, mas um simples join deve resolver.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Motta, desculpe a demora em lhe responder, seguinte, veja se é isso que você pediu.

 

Essa é a estrutura da tabela de modalidades, na tabela de horário, onde deveria estar gravado o nome da aula/modalidade, esta apenas gravado o id da modalidade para que na hora de apresentar ele pegue o id da modalidade e substitua pelo nome através do numero de id, por isso que estou tentando um Inner join mas não esta funcionando, pode ser que seja por causa da estrutura, não sei.
Tabela de Modalidades:
--
-- Estrutura da tabela `modalidades_aulas`
--
CREATE TABLE IF NOT EXISTS `modalidades_aulas` (
`id_modaula` int(11) NOT NULL AUTO_INCREMENT,
`categoria_modaula` varchar(10) NOT NULL,
`nome_modaula` varchar(200) NOT NULL,
`url_modaula` varchar(200) NOT NULL,
`texto_modaula` longtext NOT NULL,
`visitas_modaula` int(11) NOT NULL,
`status` varchar(10) NOT NULL,
PRIMARY KEY (`id_modaula`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=25 ;
Tabela de Horários:
--
-- Estrutura da tabela `aula_hora`
--
CREATE TABLE IF NOT EXISTS `aula_hora` (
`id_horario` int(11) NOT NULL AUTO_INCREMENT,
`hora_inicio` time NOT NULL,
`hora_fim` time NOT NULL,
`aula_seg` varchar(150) NOT NULL,
`aula_ter` varchar(150) NOT NULL,
`aula_qua` varchar(150) NOT NULL,
`aula_qui` varchar(150) NOT NULL,
`aula_sex` varchar(150) NOT NULL,
`aula_sab` varchar(150) NOT NULL,
`status` int(11) NOT NULL,
PRIMARY KEY (`id_horario`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=23 ;
Fiz um select desta forma:
"SELECT A.id_horario, A.hora_inicio, A.hora_fim, A.aula_seg, A.aula_ter, A.aula_qua, A.aula_qui, A.aula_sex, A.aula_sab, M.nome_modaula
FROM aula_hora A
INNER JOIN modalidades_aulas M ON A.aula_qua LIKE M.id_modaula
ORDER BY A.hora_inicio ASC LIMIT 2"
O que deveria apresentar:
"Bike ---- Capoeira
Abdominal ---- Bike"
Mas esta apresentando somente os ids das modalidades:
"4 ---- 13
1 ---- 4"
Como disse, pode ser que eu esteja fazendo a consulta de forma errada, não sei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pq inner join com LIKE !?

Exiba o nome no lugar do id ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, eu coloco pra exibir o nome, mas tem um problema, tanto usando o Like quanto =, pois como vai apresentar aula_seg, aula_ter, aula_qua, aula_qui, aula_sex e aula_sab quando eu coloco o nome_modaula, ele aparece tudo repetido em todos os campos, desde aula_seg até aula_sab.

 

O que eu poderia fazer é ao invés de registrar o ID da aula, poderia registrar o nome dela mas fiz gravando apenas o Id para que caso necessite alterar alguma aula, o nome muda automaticamente pois vai permanecer o mesmo número de id.

 

Na sua experiência, você acha melhor gravar o nome da aula ao invés do id na tabela de horarios?

 

Motta, agradeço muito pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O join entre tabelas se dá por chaves , primária x estrangeiras, não parece ser o caso.

 

 

 

Que informação tem em aula_seg , ter etc ?

 

 

 

Acho que o modelo precisa ser normalizado.

 

 

 

Procure ler sobre modelagem de dados e normalização, talvez te ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, as informações gravadas no banco de dados, da tabela, no caso de aula_seg, aula_ter, etc... vou montar um exemplo aqui, digamos que temos estes registros na tabela modalidades_aulas:

 

id_modaula: 1 | categoria_modaula: 1 | nome_modaula: Step

id_modaula: 2 | categoria_modaula: 1 | nome_modaula: Body Combat

id_modaula: 3 | categoria_modaula: 2 | nome_modaula: Jiu Jitsu

id_modaula: 4 | categoria_modaula: 2 | nome_modaula: Muay Thai

 

Isso é um exemplo, pegando as ids da modalidade (id_modaula), onde temos as categorias delas também (1 = Aeróbicas e 2 = Lutas, mas no caso isso é para ser usado em outra ocasião, não para esta) e o nome da modalidade ( Step, Body Combat, Jiu Jitsu, Muay Thai, etc ), isso na tabela modalidades_aulas.

 

Na tabela aula_hora digamos que tem um registro para o horário das 10:00, onde em cada horário novo registrado, temos as colunas de todos os dias da semana onde serão gravados apenas os ids_modaula, por exemplo:

 

hora_inico: 10:00 | aula_seg: 1 | aula_ter: 3 | aula_qua: 2 | aula_qui: 1 | aula_sex: 4 | aula_sab: 2

 

é desta forma que fica gravado, pega os ids das modalidades, mas na hora de apresentar no site, deveria aparecer assim, seguindo com as informações passadas:

 

hora_inico: 10:00 | aula_seg: Step | aula_ter: Jiu Jitsu | aula_qua: Body Combat | aula_qui: Step | aula_sex: Muay Thai | aula_sab: Body Combat

 

Não sei se consegui ilustrar melhor assim....rsrsrs

 

Mais uma vez agradeço pela ajuda e disposição.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não seria melhor normalizar isto

 

Uma tabela +ou- assim ?

 

 

id_modalidade
dia_aula n(1) 1-dom,2-seg,3-ter ..)
hora_inicio_aula
hora_fim_aula

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou dar uma estudada melhor sobre isso Motta, tentar entender bem e assim poder executar.

 

Mas agradeço muito pela sua ajuda e disposição.

 

Vlw

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.