Jump to content
Fórum Script Brasil
  • 0

Lendo uma tabela do banco de dados


Question

Olá bom dia pessoal sou novo no fórum meu no e e Daniel e muito novo em programação, apesar de já ter 40 anos minha vida toda trabalhei como técnico de informática. Acabei de me formar pela unigranrio com analista porém não sei se concordam como a faculdade online deixa a desejar no que diz respeito ao nosso aprendizado mas enfim ela me ajudou a dar alguns passos. 

Sou casado e tenho 2 maravilhosos filhos que são tudo para mim porém a correria do dia dia me atrasa um pouco nos estudos mas não desisto.

então vamos ao que interessa apos minha apresentação.

O sistema que lia os dados do relógio de ponto do meu trabalho parou de funcionar o rapaz que fez não temos mais contato e não temos o codigo fonte desse sistema.

então pensei em fazer um o que acontece

já consegui a primeira parte que é criar um crud para cadastrar os funcionários do ponto, funciona da seguinte maneira o funcionário é cadastrado no ponto com um registro e cadastro ele nesse sistema com o mesmo registro essa é minha ideia crio 2 tabelas sendo funcionario e ponto onde relaciono elas através desse registro.

Leio no php os dados que vem num txt com o registro o horario e a data

O problema que ao salvar esse dados no banco eles vem em registro diferentes e ao ler tipo

Registro/ data/ 1 batida no ponto

Registro/data/2 batida

O que eu queria é que ao ler ele com um foreach por exemplo ele ficasse da seguinte forma 

Registro / data / 1 batida / 2 batida

Obrigado e desculpe o texto longo se não entenderem o que tentei passar eu explico novamente tentando ser mais claro.

Obrigado a todos

 

Link to post
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Sim acho que isso me ajudaria pois se houvesse uma linha no txt

Ex 

Registro 170 / data 13/05/2021 e hora 10:30

E tivesse outra linha no TXT 

Registro 170 / data 13/05/21 e hora 19:00

Ele cadastra um só registro 

Registro 170 / data 13/05/21 / entrada 10:30 e saída 19:00

 

 

 

 

 

Link to post
Share on other sites
  • 0

Isso dessa maneira pode gerar vários problemas mais seria assim.

O SQL separa o que é a hora mínima e hora máxima:

SELECT id_employee, check_dt, MIN(check_hr) as Entrada, MAX(check_hr) as Saida 
FROM tb_ponto 
GROUP BY id_employee, check_dt 

E quando você for colocar a informação na página só vai aceitar com "Saída" com maior que "Entrada"

Teste de SQL:

image.png.efba57a73b457deffb7f403ec8323fa5.png

Resultado:

image.png.8f6ac7bff86c91a0d31e20833de21034.png

 

Link to post
Share on other sites
  • 0

Poxa muito obrigado vou testar aqui, será que funcionária com mais de dois registro tipo normalmente são 6 registros entrada e saída tipo entrada no trabalho saída para almoço

Volta do almoço saída para lanche 

Volta do lanche e saída do trabalho.

Agora seria melhor eu já tentar gravar o TXT no banco já com as colunas devidamente preenchidas ou na hora de ler e mostrar esses registros na página usar esse selecta e unir as informações de vários registros?

Obrigado pela boa vontade em me ajudar

 

 

 

 

 

 

 

 

 

 

 

 

Link to post
Share on other sites
  • 0

13/10/2020 12:43 00000000000170
13/10/2020 14:55 00000000000177
13/10/2020 15:01 00000000000023
13/10/2020 15:18 00000000000164
13/10/2020 15:29 00000000000086
13/10/2020 16:11 00000000000063
13/10/2020 16:12 00000000000070
13/10/2020 16:13 00000000000033
13/10/2020 16:13 00000000000085
13/10/2020 16:13 00000000000085
13/10/2020 16:14 00000000000080
13/10/2020 16:38 00000000000086
13/10/2020 16:44 00000000000105
13/10/2020 17:52 00000000000206
13/10/2020 17:58 00000000000118
13/10/2020 18:28 00000000000086
13/10/2020 18:32 00000000000086
13/10/2020 19:05 00000000000026
13/10/2020 19:05 00000000000170
13/10/2020 20:41 00000000000053
13/10/2020 21:06 00000000000177
14/10/2020 07:39 00000000000188
14/10/2020 07:42 00000000000023

 

Esse é um pouquinho dos dados do txt que o relogio de ponto gera.
consigo gravar isso no banco com cada linha sendo um registro no banco
note que o registro 170 no dia 13/10/2020 bateu o ponto as 12:43 e as 19:05
a forma que eu consigo buscar isso me gera algo como:

Registro        Data                   horário
170                 13/10/2020       12:43
170                 13/10/2020       19:05

mas o que eu queria era esse resultado:

Registro        Data                   horário     
170                 13/10/2020       12:43 - 19:05 (poderia ser assim os dois horarios na mesma coluna)

ou

Registro        Data                   horário entrada          horario saida    
170                 13/10/2020       12:43                            19:05

e como disse anteriormente tem funcionario que bate ate 6 vezes por dia
entrada / saida almoço / volta do almoço / saida lanche / volta do lanche / saida do trabalho

 

 

Link to post
Share on other sites
  • 0

Opa meu amigo consegui com a seguinte query

select p.registrofunc, p.data, f.nome, f.diastrabalho, f.horariotrabalho,
GROUP_CONCAT(p.horario SEPARATOR ' - ') AS horario
from ponto as p
inner join funcionarios as f On(f.registrofunc = p.registrofunc)
GROUP BY registrofunc;

 

Agora estou com outro probleminha mas acho que vou abrir outro tópico pois é na hora de acessar uma lista com objetos com o foreach 

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      149405
    • Total Posts
      645894
×
×
  • Create New...