Ir para conteúdo

POWERED BY:

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
      Tudo bem pessoal?
       
      No código abaixo, estou fazendo uma consulta nas tabelas, banners e banners_referencia
      Meu objetivo é trazer resultados com valores iguais ao nome da cidade declarada na $cidade ou resultados com a referencia Total.
      O problema é que está trazendo todos os resultados. Tenho 10 linhas, 1 com o nome da cidade e duas com o valor Total, então o resultado teria que ser de apenas 3 linhas, mas mostra tudo.
       
      $banner = "SELECT A.*, B.* FROM banners A, banners_referencia B WHERE B.cod_referencia = A.cod_referencia AND A.cidade = '$cidade' OR B.referencia = 'Total' ORDER BY RAND()";
      $banner = mysqli_query($conexao, $banner) or die ("Banner não encontrado");
      while($busca= mysqli_fetch_array($banner)){
          print $busca['cidade'].'<br>';
      };
       
      Alguém consegue me ajudar?
    • Por Rafael_Ferreira
      Não consigo carregar a imagem do captcha do meu formulário. Foi testado com o xampp e easyphp. Também não carregou a imagem de outros captcha. 
       
       
    • Por luiz monteiro
      Olá, tudo bem?
       
      Estou melhorando meu conhecimento em php e mysql e, me deparei com o seguinte. A tabela da base de dados tem um campo do tipo varchar(8) o qual armazena números. Eu não posso alterar o tipo desse campo. O que preciso é fazer um select para retornar o números que contenham zeros a direita ou a esquerda.
      O que tentei até agora
       
      Ex1
      $busca = $conexao->prepare("select campo form tabela where (campo = :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form']);
       
      Se a direita da string $_REQUEST['campo_form'] termina ou inicia com zero ou zeros, a busca retorna vazio.
      Inseri dados numéricos, da seguinte maneira para testar: 01234567;  12345670: 12345678: 12340000... entre outros nessa coluna. Todos os valores que não terminam ou não iniciam com zero ou zeros, o select funciona.
       
       
      Ex2
      $busca = $conexao->prepare("select campo form tabela where (campo = 0340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex3
      $busca = $conexao->prepare("select campo form tabela where (campo = '02340001' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex4
      $busca = $conexao->prepare("select campo form tabela where (campo like 2340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex5
      $busca = $conexao->prepare("select campo form tabela where (campo like '12340000') ");
      Esse número está cadastrado, mas não retorna.
       
      Ex6
      $busca = $conexao->prepare("select campo form tabela where (campo like '"12340000"' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex7
      $busca = $conexao->prepare("select campo form tabela where (campo like :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form'])
      Não retorna dados.
       
      O  $_REQUEST['campo_form'] é envio via AJAX de um formulário. 
      Usei o gettype para verificar o post, e ele retorna string.
      Fiz uma busca com número 12345678 para verificar o que o select retorna, e também retrona como string.
       
      Esse tipo de varchar foi usado porque os números que serão gravados nesse campo,  terão zeros a direita ou na esquerda. Os tipos number do mysql não gravam zeros, então estou usando esse. O problema é a busca.
      Agradeço desde já.
       
       
    • Por daemon
      Boa tarde,
       
      Eu tenho uma rotina que faz uma leitura do arquivo .xml de vários sites.

      Eu consigo pegar o tópico e a descrição, e mostrar a imagem que esta na pagina do link.
      Para isso utilizo esta função:
      function getPreviewImage($url) { // Obter o conteúdo da página $html = file_get_contents($url); // Criar um novo objeto DOMDocument $doc = new DOMDocument(); @$doc->loadHTML($html); // Procurar pela tag meta og:image $tags = $doc->getElementsByTagName('meta'); foreach ($tags as $tag) { if ($tag->getAttribute('property') == 'og:image') { return $tag->getAttribute('content'); } } // Se não encontrar og:image, procurar pela primeira imagem na página $tags = $doc->getElementsByTagName('img'); if ($tags->length > 0) { return $tags->item(0)->getAttribute('src'); } // Se não encontrar nenhuma imagem, retornar null return null; } // Uso: $url = "https://example.com/article"; $imageUrl = getPreviewImage($url); if ($imageUrl) { echo "<img src='$imageUrl' alt='Preview'>"; } else { echo "Nenhuma imagem encontrada"; }  
      Mas estou com um problema, esta funcão funciona quando coloco em uma pagina de teste.php. Preciso mostrar em uma página inicial diversas fotos de todos os links. (No caso acima só funciona 1).
×

Informação importante

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