Ir para conteúdo

POWERED BY:

Arquivado

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

Junior Sanxo

Comparar duas tabelas e mostrar somente um resultado para todos ids&#3

Recommended Posts

Olá pessoal, estou com uma dúvida desgraçada! hehe

Eu quero que meu formulário mostre somente os horários disponíveis que não estão agendados ainda...

 

 

O que eu quero fazer?

 

Tenho um formulário de agendamento e serviços. E tenho uma tabela no BD com os horários de 9:00 ás 18:00...

 

id | hora

1 | 9:00

2 | 9:30

3 | 10:00

 

até 18:00...

 

até ai tudo bem!

O horário vai ser mostrado em um campo <select></select>...

Tenho tbm uma outra tabela com os dados do agendamento...

 

id | nome | HoraIn | HoraFi

1 | cliente1 | 14:00 | 15:30

2 | cliente2 | 16:00 | 17:30

Tenho o seguinte código:

 

<?php
$query = mysqli_query($db,"SELECT HoraIn, HoraFi, hora FROM agenda, horas WHERE HoraIn != hora and HoraFi != hora")or die(mysql_error());
while($row = mysqli_fetch_assoc($query)) {
$hora = $row['hora'];
echo "<option>".$hora."</option>";
}
?>
O que ele faz?
Seleciona as duas tabelas...
Agenda e Horas.
WHERE Pega a hora HoraIn(Hora inicial do trabalho) e a HoraFi(Hora final do trabalho) da tabela Agenda e a Hora da lista de horários da tabela Horas... e compara.
Nesse caso ele deve ESCONDER os horários que já estão agendados e mostrar no <select>
consegui fazer isso enquanto so tinha um agendamento, ou seja somente um ID de cliente!
Ele mostrava normal... e escondia a hora que ja estava agendada la no cliente!
<select>
<option>9:00</option>
<option>9:30</option>
...
</select>
Ai depois que foi adicionado um novo cliente!
a lista aparece assim!
<select>
<option>9:00</option>
<option>9:00</option>
<option>9:30</option>
<option>9:30</option>
...
</select>
O que eu quero? que ele verifique todos os clientes e mostre somente os horários que ESTÃO DISPONÍVEIS...
Me ajudem como faço isso???

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se entendi bem o problema... Você precisa mostrar todos os dados da tabela A

que não estão na coluna horaIn da Tabela B?

SELECT id, hora FROM tabelaa WHERE hora NOT IN (SELECT HoraIn FROM tabelab);

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.