Ir para conteúdo
Fórum Script Brasil

Leonardo Persan

Membros
  • Total de itens

    336
  • Registro em

  • Última visita

Posts postados por Leonardo Persan

  1. 3 horas atrás, Danilo Gonçalves disse:

    Ficou de fácil entendimento ?

    Ficou sim, só não entendi porque você quer fazer isso com uma consulta do Banco é mais fácil fazer esse calculo no PHP no momento do cadastro da tabela regToner e depois fazer um UPDATE simples na tabela cadToner:

    mysqli_query($con, 'UPDATE cadToner SET quantidade_toner = '.($toner['quantidade_toner']-$saida['quant_reg']).' WHERE id_toner = '.$toner['id_toner']);

    Só compensa fazer isso no Banco se você tiver vários sistemas complexos que interagem com a tabela regToner e precisar fazer Triggers para manter essa regra de negócio e mesmo nessa caso seria interessante verificar a possibilidade de fazer APIs e Micro-serviços antes de partir para Triggers

  2. 16 horas atrás, arcadyum disse:

    Mas, o uso do Oauth é realmente muito complicado ou é mesmo minha completa ignorância com o assunto?

    Pra ser sincero eu também não sei implementar e como o esse formato de login funcionou, acabei não pesquisando mais kkkkk

     

    14 horas atrás, arcadyum disse:

    Usar um grande provedor (com uma série de regras de segurança) ou montar um servidor próprio e simples?

    Eu prefiro usar um provedor, principalmente o Google há menos que você tenha alguma necessidade muuuito específica que nenhum deles atenda, ou você queira estudar, mas eu acho que a dor de cabeça que um servidor de e-mail gera não vale a pena.

  3. Eu não aconselho manter as tabelas medico e medico_permanente e sim criar um campo cargo ou funcao na tabela empregado para fazer essa diferença

    Além de que chaves primárias devem ser só primárias, chaves estrangeiras só estrangeiras, mesmo que isso signifique ter mais dados e ocupar mais espaço no Banco de Dados.

    O relacionamento cliente => consulta => resultado_consulta está errado, porque você fez vez de 1 para 1 em todos os casos e isso não é verdade.

    Um Cliente pode não ter nenhuma ou ter muitas Consultas.
    Um Médico pode não ter feito nenhuma ou ter muitas Consultas.

    Mas desconsiderando essas alterações as consultas seriam...

    Em 06/11/2019 em 14:02, danielcruz733 disse:

    1. A primeira query é a seguinte:

    Preciso listar o nome de todos os médicos trainees cujos testes de avaliação contem o termo "insuficiente". Além do nome do médico trainee, a consulta deve me retornar o seu ID, sua pontuação, a descrição do teste (suficiente, insuficiente...) e o nome do médico que fez a avaliação.

    SELECT trainee.id , trainee.nome as trainee, avaliacao.pontuacao, avaliacao.descricao, supervisor.nome as supervisor
    FROM medico_trainee mt
    INNER JOIN empregado trainee ON mt.id_medico_trainee = trainee.id
    INNER JOIN empregado supervisor ON mt.id_medico_supervisor = supervisor.id
    INNER JOIN avaliacao ON trainee.id = avaliacao.id
    WHERE avaliacao.descricao = "insuficiente"
    Em 06/11/2019 em 14:02, danielcruz733 disse:

    2. A segunda query é a seguinte:

    Preciso listar o nome, cidade e o id de todos os clientes da clínica cuja consulta o médico tenha diagnosticado "gingivitis" ou "periodontitis". Esta não me parece muito difícil mas também estou batendo cabeça. Segue abaixo as tabelas que estou trabalhando para esta query:

    SELECT cli.*
    FROM cliente cli
    INNER JOIN consulta con ON cli.id = con.id_cliente
    INNER JOIN resultado_consulta res ON con.id_medico = res.id_medico
    WHERE descricao IN ("gingivitis""periodontitis")
  4. Isso significa que na tabela existem dias que não têm nenhum registro nem do tipo 1 e nem de outros tipos porque a consulta:

    SELECT DISTINCT data_registro FROM tbl_tabela WHERE data_registro BETWEEN '2019-11-01' AND '2019-11-31'

    Seleciona todas as datas cadastradas.

    Você precisa fazer isso pelo MySQL mesmo? Essa consulta é executada por algum script seu? Qual é a linguagem de programação?

  5. O correto é ter duas tabelas distintas uma para os dias e outra para os registros de fato com um relacionamento entre elas e fazer o LEFT JOIN, mas da pra simular isso na consulta.

    SELECT DATE_FORMAT(d.data_registro, '%d') AS dia, t.tipo, COUNT(t.tipo) AS total
    FROM (SELECT DISTINCT data_registro FROM tbl_tabela WHERE data_registro BETWEEN '2019-11-01' AND '2019-11-31') AS d
    LEFT JOIN tbl_tabela AS t ON d.data_registro = t.data_registro
    WHERE t.tipo = 1
    GROUP BY t.data_registro

    Estou assumindo que o campo data_registro é do tipo DATE se ele for DATETIME você vai precisar usar um DATE_FORMAT

  6. Em 01/11/2019 em 17:45, fjdoliveira disse:

    Os dados são salvos no banco a cada 30 segundos

    Pensando nisso talvez seja melhor utilizar o WHERE, MINUTE e IN em vez do GROUP BY e DATE_FORMAT, tenta assim:

    SELECT * FROM tabela WHERE MINUTE(dataHora) IN(0,15,30,45)

    Provavelmente você ainda vai selecionar dois registros por minuto se isso for um problema da pra voltar com o GROUP BY e DATE_FORMAT

    SELECT * FROM tabela WHERE MINUTE(dataHora) IN(0,15,30,45) GROUP BY DATE_FORMAT(campo_xpto, '%Y-%m-%d %H:%i')

  7. 22 horas atrás, AlexandreNSilva disse:

    Nunca use isso em produção pelo amor de Deus, ah menos que você conscientemente queira seu sistema invadido.

    Todo HTML, CSS, JS, IMG é entregue ao navegador do cliente pelo servidor e a partir dai não existe NENHUMA garantia que o usuário não vá alterar nada, eu faço isso toda hora pra poder tirar prints de páginas imprimir PDFs, enfim, qualquer validação deve ser feita no servidor.

    Em 29/10/2019 em 10:53, arcadyum disse:

    Há uma forma de verificar se a senha e o usuário estão corretos sem submeter o formulário de login

    Não existe, os dados devem chegar ao servidor de alguma forma, seja por Form comum(e a página é recarregada) ou AJAX(a página não recarrega, mas os dados foram enviados para o servidor validar).

    O jeito mais simples de fazer um AJAX é usando o método post() do jQuery https://api.jquery.com/jquery.post/

    No caso do AJAX para o PHP que recebe a requisição não vai fazer diferença nenhuma para receber e validar os dados o código PHP só precisa ser diferente na hora de responder.

    Em vez de devolver um HTML ele ira devolver um json que nada mais é do que um array com um formato específico, exemplo de resposta:

    echo json_encode(array('result'=>true, 'msg'=>'Login feito com sucesso'));

    OU

    echo json_encode(array('result'=>false, 'msg'=>'Senha ou usuário inválido'));

×
×
  • Criar Novo...