Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Tabela com horarios


Alecsfb

Pergunta

Amigos tudo bem?

estou tentando montar um combo box com horario pré-determinados em BD, até aí tranquilo, pois monta o combo com as informações do BD sem problemas.

O problema, e estou queimando o miolo aqui, é que em um determinado horario que foi agendado não poderá aparecer no combo novamente.

vou dar um exemplo:

horarios disponiveis:

07:00 07:30 08:00 08:30 09:00 09:30 10:00 10:30 (estes horarios mostrarão no combo)

foi agendado um horario das 08:00 as 09:30 (em banco de dados tb)

então na proxima vez que acessar o combo mostrará apenas

07:00 07:30 10:00 10:30

:blink:

será que consegui ser claro?

valeu pela força!

[]´s

Alecs

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

já pensei nisso tb...

daria certo se no BD de agendamento tivesse marcado hora a hora, mas o problema é que os horarios que são agendado poderão ser de hora a hora ou mais.

no exemplo que dei pode ter agendamento de 7:00 as 8:00 7:00 as 9:30 e neste caso, fazendo a busca, não iria aparecer no combo apenas 7:00 e 9:30 mas o horario que fica entres estas duas horas iria aparecer.

para tentar facilitar gravei no BD de meia em meia hora 7:00 7:30 8:00 8:30.... até as 20:00

outro detalhe

terei tabela de clientes então um cliente poderá estar agendado para o horario das 7 as 8:30 e entrando para agendar um outro cliente mostrará os horarios no combo a partir das 8:30... e assim por diante...

valeu pela atenção.

Link para o comentário
Compartilhar em outros sites

  • 0

Não entendi muito bem, mais vo tentar te ajudar...

você disse que tem registrado no banco de dados os horarios , dai faz um combox com esses horarios , quando alguém marca um horario , não mostra ele...

Ou seja mostra os horarios disponiveis no banco de dados...

Se for isso tente isso aqui

Criei outro campo e nomei-o como ocupado ai so vai ter dois valore 0 para livre e 1 para ocupado...

Dai faça mostra no combox todos que tiverem com o campo ocupado com o valor 0

Quando alguém marca um horario é so muda o valor pra 1 e ele não vai aparece mais no combobox

espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

  • 0

Bem, se você está disponibilizando as horas para serem escolhidas em um combo, então você precisará de 2 combos: um para inicio e outro para fim. Certo?

você precisará de uma tabela com todos os horários disponíveis e uma tabela com os horários marcados.

Na hora de mostrar os horários livres você usa uma subconsulta do tipo:

SELECT horario FROM horario // tabela com os horários determinados

WHERE horario NOT IN

(SELECT hora FROM agenda WHERE dtevento = '27-7-2010' ORDER BY hora ASC) // tabela com os dados dos horários marcados naquele dia selecionado

O resultado desta consulta será os horários da tabela horario que não estão na tabela de horarios marcados.

Como você vai informar 2 horários, inicio e fim, use o between.

você pode também permitir que o usuário selecione os horários que quer usar usando um checkbox. Se o usuário precisar de 8 as 9:30 ele irá marcar todos esses horários. Assim fica mais fácil. Não precisa usar between. Basta aplicar o select acima.

Uma dica é você ir fazendo por partes. Primeiro monte a agenda mostrando os horários livres sem intervalo, depois vá incrementando.

Editado por Thiago Luna
Link para o comentário
Compartilhar em outros sites

  • 0

opá, valeu pela ajuda galera.

David isso tambem já tinha feito, mas dava problema, porque tinha um intervalo entre os horarios selecionados que continuavam aparecendo.

Thiago, valeu pela dica, mas tambem não deu certo, trazia horarios que não eram para estar lá.

Mas consegui resolver de uma outra forma.

Como apareceu a dificuldade de que em finais de semana não iriam ter agenda, então resolvi criar uma outra tabela onde coloco as datas com os horarios disponiveis, então posso marcar cada data e horario separadamente, inclusive fazer calculos e marcar a faixa inteira de horario que selecionei, por exemplo:

se marcar das 8:00 as 10:00 no BD será marcado os campos 08 09 e 10 horas de respectiva data.

assim consegui matar meu problema.

e para a tabela não ficar muito grande, posso ir excluindo as datas que já passaram, pois o historico do cliente já terá sido salvo.

Valeu pela ajuda de todos.

obrigado!

[]´s

Alecs

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...