Ir para conteúdo

Arquivado

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

MaércioGBB

Agendamento de horário em PHP e MySQL

Recommended Posts

Olá pessoal!

Sou novo por aqui e gostaria de uma ajudinha de vocês.

Estou montando um site PHP sobre agendamento de horários, onde será mostrado o nome de cada pessoa em seu respectivo horário, assim como está na imagem.

Ex: Uma escola de cursos, onde cada aluno tem seu horário, mais pode sofrer uma alteração do horário por causa de uma reposição de horário ou transferência do horário.

Mais não faço ideia de como fazer isso, primeiramente imaginei fazer em uma tabela HTML os horários e os dias da semana, e depois fazer a conexão com o banco de dados e inserir os nomes, mais o problema seria sincronizar as datas com os dia da semana (Ex: segunda - 12/02/2018 ).

Já procurei aqui no fórum sobre o assunto, tem várias questões parecidas, mais nenhuma que me tirasse essa dúvida.

 

Exite alguma maneira mais fácil de fazer isso?

tabela PHP.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

tabela:

tabela_agenda

colunas:

nome | horario | data

Pra acompanhar as datas/dias da semana, veja um exemplo:

date("Y-m-d-D");

resultado:

2018-02-10-Sat

Se você quiser adicionar dias/meses/horas:

Adicionando +5 dias na data atual

date("Y-m-d-D",strtotime(date("Y-m-d") . " +5 days"));

Adicionando +5 dias e +3 horas do horário atual:

date("Y-m-d-D H:i",strtotime(date("Y-m-d H:i") . " +5 days +3 hours"));

E assim por diante. Você pode usar o date(), como também, dependendo da forma que você construir o código, nem precise, mas fica aí como um exemplo.

 

Com isso aí você já consegue criar uma lógica pra montar o código e trabalhar os dias/horários, depois é só criar um looping usando for()/while()/foreach() que vai ir de 14:30 até 17:10 em cada dia da semana, se existir algum "aluno" dentro do horário correspondente que foi armazenado no banco, ele insere na table e vai construindo a table html passando por todos dias, de segunda à domingo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe pela demora, estive fora por um tempo.

Meu conhecimento em PHP ainda é bem fraco, eu entendi sua explicação e até tentei colocar em pratica, mais sem sucesso.

Já estou com a parte de cadastrar, deletar, alterar e pesquisar todo feito, só falta essa parte da tabela com o nome das pessoas.

Em relação ao banco de dados, eu posso estar criando colunas com data e hora? ou deveria criar uma TIMESTAMP para armazenar os dois e tratar pelo PHP?

Vou tentar explicar melhor, eu queria exibir uma tabela igual a imagem acima, que exibisse horários de segunda a domingo, e que só exibisse as pessoas na semana em que estariam reservadas, mais que tivesse outras tabelas com as semanas futuras, para que fossem consultadas as pessoas com reservas futuras assim como a imagem abaixo.

tabela PHP 2.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sugestão do BrunoBit é bem maneira.

 

Porém uma forma mais fácil que você pode fazer já que você está iniciando.

 

e criar no banco 

tabela - agendamento

colunas - nome(VARCHAR) - dia(date) - hora(varchar)

pelo que percebi os horários são fixos você só precisa verificar os dias.

 

sugiro que você faça um formulário que contenha um select com as opções dos horários pre definidos e um input para receber o nome

 

e abaixo uma tabela que irá puxar do banco as informações das datas disponíveis. Usando o while que o BrunoBit mencionou e caso você queria remover você coloca junto da exibição um button que receberá o id do banco e enviara para uma página onde você conseguirá alterar/deletar as informações desejadas

 

essa e a forma mais fácil de você obter o que deseja. na minha opnião.

 

Boa sorte

Compartilhar este post


Link para o post
Compartilhar em outros sites
17 horas atrás, jeanzinsousa disse:

pelo que percebi os horários são fixos você só precisa verificar os dias.

Isso mesmo, os  horários são fixos.

 

No projeto, eu criei um formulário que só receberá os dados de uma pessoa como nome, endereços, data de nascimento, gênero e telefone que serão inseridos no banco de dados, depois criei um comando listar que irá exibir todas as pessoas que foram cadastradas, onde tem a opção de altera ou remover uma pessoa.

No momento, estou desenvolvendo um novo formulário  que receberá uma determinada pessoas e irá atribuir um horários que deverá ser responsável pela exibição dessa pessoa na tabela de horários que havia citado acima.

 

17 horas atrás, jeanzinsousa disse:

colunas - nome(VARCHAR) - dia(date) - hora(varchar)

Eu posso colocar os horários como varchar?

 

17 horas atrás, jeanzinsousa disse:

sugiro que você faça um formulário que contenha um select com as opções dos horários pre definidos e um input para receber o nome

 

e abaixo uma tabela que irá puxar do banco as informações das datas disponíveis. Usando o while que o BrunoBit mencionou e caso você queria remover você coloca junto da exibição um button que receberá o id do banco e enviara para uma página onde você conseguirá alterar/deletar as informações desejadas

Realmente achei mais fácil dessa forma, irei tentar fazer dessa forma, qualquer coisa volto a pedir ajuda.

 

Obrigado

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
14 horas atrás, MaércioGBB disse:

Eu posso colocar os horários como varchar?

pode só que eles serão considerados strings e não date. te dei esse exemplo por conta da forma que eu entendi pra resolver o seu problema. porque se usar date você não consegue comparar no php.

 

boa sorte. Se conseguir posta aqui no forúm pra ver como ficou e se precisar só chamar. ; )

 

abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera, tudo bem?
       
      Tenho o seguinte codigo:
       
       class Data {
      public static function ExibirTempoDecorrido($date)
      {
          if(empty($date))
          {
              return "Informe a data";
          }
          $periodos = array("segundo", "minuto", "hora", "dia", "semana", "mês", "ano", "década");
          $duracao = array("60","60","24","7","4.35","12","10");
          $agora = time();
          $unix_data = strtotime($date);
          // check validity of date
          if(empty($unix_data))
          {  
              return "Bad date";
          }
          // is it future date or past date
          if($agora > $unix_data) 
          {  
              $diferenca     = $agora - $unix_data;
              $tempo         = "atrás";
          } 
          else 
          {
              $diferenca     = $unix_data - $agora;
              $tempo         = "agora";
          }
          for($j = 0; $diferenca >= $duracao[$j] && $j < count($duracao)-1; $j++) 
          {
              $diferenca /= $duracao[$j];
          }
          $diferenca = round($diferenca);
          if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
          return "$diferenca $periodos[$j] {$tempo}";
      }
      }
       
      Funciona redondinho se o valor retornado for de algumas horas, mas...
      Quando passa de dois meses, ele retorna a palavra mess. Deve ser por conta dessa linha
      if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
       
      Quero que modre:
       
      2 meses atrás
      e não
      2 mess atrás.
       
      Espero que tenham entendido.
       
      Valeu
    • Por Carlos Web Soluções Web
      Olá...
      Estou tentando fazer o seguinte !!
      Listando dados em tabela !!
      Gostaria que....se na listagem houver 4 linhas...indepedente de seu número de ID, faça a listagem em ID ser em ordem 1 2 3 4 !!
      Exemplo...se tiver uma listagem de dados que está em ID 1 3 3...faça ficar 1 2 3 !!

       
      echo "<table class='tabela_dados' border='1'> <tr> <td>ID</td> <td>Nome Empresa</td> <td>Responsável</td> <td>Telefone 1</td> <td>Telefone 2</td> <td>E-mail 1</td> <td>E-mail 2</td> <td>Endereço</td> <td>CEP</td> <td>Bairro</td> <td>AÇÃO 1</td> <td>AÇÃO 2</td> </tr> "; $sql = "SELECT ID FROM usuarios_dados WHERE Usuario='$usuario'"; $result = $conn->query($sql); $num_rows = $result->num_rows; $Novo_ID = 1; for ($i = 0; $i < $num_rows; $i++) { $registro = $result -> fetch_row(); $sql2 = "UPDATE usuarios_dados SET ID='$Novo_ID' WHERE ID='$Novo_ID'"; $result2 = $conn->query($sql2); $Novo_ID++; } $sql = "SELECT * FROM usuarios_dados"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "<tr> <td>$row[ID]</td> <td>$row[Nome_Empresa]</td> <td>$row[Responsavel]</td> <td>$row[Telefone_1]</td> <td>$row[Telefone_2]</td> <td>$row[Email_1]</td> <td>$row[Email_2]</td> <td>$row[Endereço]</td> <td>$row[CEP]</td> <td>$row[Bairro]</td> <td> <form method='post' action='Editar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='EDITAR'> </form> </td> <td> <form method='post' action='Deletar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='DELETAR'> </form> </td> </tr> "; } } else { echo "0 results"; } $conn->close();  
    • Por ILR master
      Boa tarde pessoal, tudo bem ?
       
      Eu uso o tinymce para cadastro de textos no meu siite, porém, quero fazer um sistema para que os colunistas possam fazer o próprio post.
      O problema do tinymce, é que ele mantém a formatação do texto copiado, como tamanho de fonts, negritos, etc... Quero que o usuário cole o texto e a própria textarea limpe a formatação para que ele formate como quiser.
       
      A pergunta é:
       
      O tinymce tem uma opção para desabilitar a formatação quando um texto é colocado?
      Tem alguma função via java ou php para retirar a formatação assim que o texto é colado?
      Ou é melhor usar um outro editor?
       
      Agradeço deste já.
    • Por Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
    • Por ILR master
      Fala pessoal.
       
      Seguinte:
       
      Quero selecionar duas tabelas e mostrar com resultados intercalados. Abaixo segue um código explicando para vcs terem uma ideia.
       
      $consulta = "SELECT A.*, B.* FROM tabela1 A, tabela2 B'";
      $resultado = mysqli_query($conexao, $consulta) or die ("erro");
      while($busca = mysqli_fetch_array($resultado)){
       
      print $busca['cod_evento']; --> traz o código da tabela1 
      print $busca['titulo_evento']; -->  traz o titulo da tabela1
      print $busca['cod_noticia']; --> traz o código da tabela2
      print $busca['titulo_noticia']; --> traz o tituloda tabela2
       
      }
       
      Espero que entendam. Grato
       
×

Informação importante

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