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 violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por ILR master
      Fala galera, tudo certo?
       
      Seguinte: No servidor A estou tentando fazer uma consulta com o servidor B, mas está dando erro.
      Estou usando o mesmo código de conexão do servidor B que funciona perfeitamente, mas no servidor A, dá erro.
      Segue código:
       
      $host = 'servidor B';
      $user = 'user';
      $pass = '********';
      $db   = 'banco';
       
      // conexão e seleção do banco de dados
      $conexao = mysqlI_connect($host, $user, $pass, $db);
      mysqlI_set_charset($conexao,"utf8");
      //print "Conexão rodando e OK!"; 
      //mysqlI_close($conexao);
       
      Alguém pode me ajudar?
×

Informação importante

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