Jump to content

unset

Members
  • Content count

    24
  • Joined

  • Last visited

Community Reputation

0 Comum

About unset

  1. unset

    Lógica para desenvolver um sistema de agendamento

    Obg por responder reformulei a pergunta
  2. Olá, estou elaborando a lógica para desenvolver um sistema de agendamento em PHP, ele consiste em salvar no banco os horários disponíveis que uma empresa pode funcionar, Por exemplo, certos dias de semana pode ou não ter horários liberados, assim como certos dias, nesses períodos em cada faixa de horário pode ter diferentes quantidades de clientes que podem fazer um agendamento de acordo com a quantidade do horário. Por exemplo na empresa 1 = de Segunda a Sexta das 07:00h até as 22:00h tem horário, Sábado e Domingo Fechado Por exemplo na empresa 2 = Só atende Sábado e Domingo das 13:00 as 00:00h e é fechado nos outros dias Em cada um desses horários tenho que salvar a quantidade de pessoas que podem ser atendidas por exemplo Empresa 1 = Segunda 7:00h = 4 vagas Empresa 1 = Terça 18:00h = 2 vagas Empresa 1 = Sexta 19:00h = 0 vagas - indisponível Empresa 2 = Sábado 17:00h = 0 vagas - indisponível Empresa 2 = Sábado18:00h = 5 vagas Empresa 2 = Domingo 20:00h = 6 vagas Pensando em uma forma que acho pouco convencional e pouco lógica, criaria um formulário com vários e vários campos de todos os dias da semana com todos os horários disponíveis e quantidades pra ser colocada como na imagem em anexo, e salvaria no formato json no banco assim por exemplo Coluna: agendamentoDiasSemanaHorarios {"1":{"ativo":"0","horarios":{"07:00":7,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}},"2":{"ativo":"0","horarios":{"07:00":0,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}},"3":{"ativo":"0","horarios":{"07:00":0,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}},"4":{"ativo":"0","horarios":{"07:00":0,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}},"5":{"ativo":"0","horarios":{"07:00":0,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}},"6":{"ativo":"0","horarios":{"07:00":0,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}},"7":{"ativo":"0","horarios":{"07:00":0,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}}} Então no caso se 1 ativo quer dizer que segunda pode ter horários agendados, aí vem a lista gigante de horários exemplo 07:00 e em seguida a quantidade de pessoas no caso 7 Estou com dificuldade para elaborar uma logica mais simples que funcione, Se alguém tiver uma ideia e possa ajudar, uma opinião de como faria, agradeço muito.
  3. Obg por responder, se puder poderia disponibilizar o código PHP utilizado
  4. Obg por responder... Dessa forma que falou só vai inserir uma linha, já estou fazendo isso, o que eu gostaria de saber é como inserir todos os registros de acordo com os ids selecionados no select por exemplo Se seleciono apenas uma cidade então vai inserir um registro com o id selecionado Se seleciono 3 cidades então vou ter 3 ids e cada um deve ser inserido na tabela em uma nova linha Se seleciono 10 cidades então vai ter 10 ids inseridos um em cada nova linha tipo ta faltando pouco só não ta fluindo a ideia de como fazer <?php $ids = $dados['ofertaCidades']; foreach ($ids as $id) { $ofertaCidades->oferta_id = 666; $ofertaCidades->cidade_id = $id; $ofertaCidades->principal = 1; $ofertaCidades->salvar(); } ?> tentei usar foreach também com ele tudo bem eu pego todos os ids do select, mais na hora de salvar só salva uma linha, ou seja só o ultimo id, realmente ta faltando so a logica pra salvar linha por linha de acordo com a quantidade de ids do select
  5. Olá, estou com uma falha de lógica pegando aqui se alguém puder ajudar Eu tenho um formulário tranquilo, como abaixo <label for="cidades" class="form-label">Cidades</label> <select class="form-select mb-3" name="cidades[]" id="cidades" multiple="multiple"> <option value="1">Cidade 1</option> <option value="2">Cidade 2</option> <option value="3">Cidade 3</option> <option value="4">Cidade 4</option> <option value="5">Cidade 5</option> </select> Blz eu recebe os dados do formulário ou seja os ids da cidade certinho em um array array(3) { [0]=> string(1) "2" [1]=> string(2) "3" [1]=> string(1) "5" } <?php $dados = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRIPPED); var_dump($dados); ?> Agora como inserir todos os ids no banco? utilizando um for? um while? algum exemplo? Pergunto pq ao tentar inserir no banco somente um registro é inserido e não todos do select
  6. Olá, estou com uma pequena dúvida Como transformar a data que recebemos com a função date("Y-m-d H:i") em uma string 2021-04-22T00:00 exatamente nesse formato ?
  7. Se pretende só redimensionar de acordo com a largura da tela não poderia usar media queries ?
  8. Olá, estou começando a usar o twig template e estou com uma dúvida e não encontrei a resposta também não sei se é possível mais espero que seja possível Bom eu tenho um arquivo com várias funções, como eu faço para chamar essas funções no HTML? Não funciona assim {{ funcao() }}
  9. Olá, estou com um probleminha aqui se alguém puder ajudar, Eu tenho a data em uma coluna no formato date 2020-12-01 e a hora em outra coluna no formato time 09:00:00 Como eu posso saber se a data de hoje é maior do que data e hora dessas 2 colunas?
  10. Olá a todos, estou com uma dúvida se alguém puder me ajudar. Qual seria a melhor forma de filtrar e como filtrar $_SERVER['REQUEST_METHOD']? Tenho um formulário simples <form action="deletar/10" method="post"> <input type="submit" class="btn btn-sm btn-danger" value="Deletar"> </form> Então recebo o id 10, ai como eu poderia validar esse formulário tendo certeza que ele veio pelo método post do meu servidor aplicando esse ou outro filtro ou método mais eficiente? Exemplo sem sucesso <?php public function deletar($id) { $id = filter_var($id, FILTER_VALIDATE_INT); $metodo = filter_var($_SERVER['REQUEST_METHOD'], FILTER_DEFAULT); if(isset($id) && isset($metodo)): echo 'pode salvar os dados'; endif; echo '<hr>'; var_dump($id); echo '<hr>'; var_dump($metodo); } ?>
  11. unset

    Como ordenar strings que começam com números?

    Não da pra fazer por SELECT, sei que da pra ordenar crescente ou decrescente se tiver a coluna ID porém não é esse o caso
  12. Olá, alguém poderia me dar uma luz. Como faço para ordenar strings que começam com números, exemplo Tenho uma lista de artigos e os nomes são como abaixo. 1 - NOME DO ARQUIVO 1 2 - NOME DO ARQUIVO 2 etc.... 10 - NOME DO ARQUIVO 10 Não consegui ordenar no SELECT com o ORDER BY nome DESC pq o número 10 fica abaixo do 1 Como fazer assim, 1,2,3,4,5....... 10,11,12 .... 100, 101,102 etc...
  13. Olá ShadowDLL, obg por responder. Dessa forma ai, o update só é feito quando não tiver valor vindo do formulario, ou seja quando não tiver a capa, mais e quando ela existir? A imagem de capa é opcional no formulário então ela pode ou não vir, ou seja o $dados['capa'] pode ou não existe, se existir faz o update normal e atualiza o campo Se a capa não existir, faz o update mais sem atualizar o campo capa, só os outros campos
  14. Olá a todos, estou com uma dúvida ou probleminha e buguei aqui, se alguém puder ajudar, é o seguinte tem como eu fazer um update sem setar valor ou de alguma forma não alterar o valor do campo se o campo tiver valor no banco? Exemplo Aqui eu recebo os dados pra cadastrar tudo certo public function update($dados) { $this->db->query("UPDATE posts SET capa = :capa, titulo = :titulo, texto = :texto WHERE id = :id"); $this->db->bind(":id", $dados['id']); $this->db->bind(":capa", $dados['capa']); $this->db->bind(":titulo", $dados['titulo']); $this->db->bind(":texto", $dados['texto']); } Porém, o campo capa, ou seja o dado caba não é obrigatório então se ele vier com valor null, ou em branco etc deveria não alterar o valor no banco pois o mesmo ja esta preenchido, como fazer para que ele altera o valor no banco somente se for null Eu já tentei usar unset($dados['capa']); para remover a capa, mais ele deixa o campo do DB null mesmo quando tem valor lá, e também definir $dados['capa'] = null, em fim não da certo...
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.