Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

smoke_rohden

Organizar informações em uma tabela

Recommended Posts

Preciso organizar os horários de entrada e saída de ponto dos funcionários em uma tabela em que apareça a data e na frente as batidas de ponto(horários). e se não tiver batida de ponto mostrar como "falta". Não consegui achar uma lógica para fazer isso. O que eu poderia usar?Existe alguma função pra isso?

 

Alguém pode me ajudar??

 

Existe algum tipo de array que organiza essas informações(batidas de ponto) por data ?

 


eu queria algo assim:

Dia Dia Semana Ocorrências

1 - Quarta -07:30 12:00 13:30 17:00

2 - Quinta -07:30 12:00 13:30 17:00

3 - Sexta -07:30 12:00 13:30 17:00

4 - Sábado -07:30 12:00 13:30 17:00

5 - Domingo -07:30 12:00 13:30 17:00

6 - Segunda -07:30 12:00 13:30 17:00

7 - Terça -07:30 12:00 13:30 17:00

8 - Quarta -07:30 12:00 13:30 17:00

9 - Quinta - 07:30 12:00 13:30 17:00

10 - Sexta - 07:30 12:00 13:30 17:00

11 - Sábado - 07:30 12:00 13:30 17:00

12 - Domingo - 07:30 12:00 13:30 17:00

13 - Segunda - falta

14 - Terça - 07:30 12:00 13:30 17:00

15 - Quarta - 07:30 12:00 13:30 17:00

16 - Quinta - 07:30 12:00 13:30 17:00
17 - Sexta - 07:30 12:00 13:30 17:00
18 - Sábado - 07:30 12:00 13:30 17:00
19 - Domingo - Falta
20 - Segunda - 07:30 12:00 13:30 17:00

21 - Terça - 07:30 12:00 13:30 17:00

22 - Quarta - 07:30 12:00 13:30 17:00

...


Código:

                 
  <table class="table table-striped">
  <tr>
  <th>Data</th>
  <th>Dia Semana</th>
  <th>Ocorrências</th>
  </tr>  <br />
        
    <?php
            
              
    $diasSemana[1] = 'Segunda-feira';
    $diasSemana[2] = 'Terça-feira';
    $diasSemana[3] = 'Quarta-feira';
    $diasSemana[4] = 'Quinta-feira';
    $diasSemana[5] = 'Sexta-feira';
    $diasSemana[6] = 'Sábado';
    $diasSemana[7] = 'Domingo';

   
    for($dias = 1; $dias <= date('t',strtotime('2016-06')); $dias++)
    
    {
    echo "<tr>";
    echo "<th>".$dias."</th>" . "<th>".$diasSemana[date('N', strtotime("2016-06-$dias"))] ."</th>" . "<th>";
   
      
        }
        
     
   echo "</tr>";
      
?>    
             </table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como estão organizados os dados?

 

Você pode criar um array em que o índice é a data e os valores sejam cada um dos horários... algo nessa estrutura:

$dados = Array(
    "01/06/2016" => Array("07:30", "12:00", "13:30", "17:00"),
    "02/06/2016" => Array("07:30", "12:00", "13:30", "17:00"),
    ...
    "12/06/2016" => Array("07:30", "12:00", "13:30", "17:00"),
    "13/06/2016" => Array(), // vazio = falta
    "14/06/2016" => Array("07:30", "12:00", "13:30", "17:00")
);

E dentro do seu for você verifica se nesse array existe a data e se ela está vazia ou se tem valor para imprimir os horários.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera, tudo bem?
       
      Tenho o seguinte codigo:
       
       class Data {
      public static function ExibirTempoDecorrido($date)
      {
          if(empty($date))
          {
              return "Informe a data";
          }
          $periodos = array("segundo", "minuto", "hora", "dia", "semana", "mês", "ano", "década");
          $duracao = array("60","60","24","7","4.35","12","10");
          $agora = time();
          $unix_data = strtotime($date);
          // check validity of date
          if(empty($unix_data))
          {  
              return "Bad date";
          }
          // is it future date or past date
          if($agora > $unix_data) 
          {  
              $diferenca     = $agora - $unix_data;
              $tempo         = "atrás";
          } 
          else 
          {
              $diferenca     = $unix_data - $agora;
              $tempo         = "agora";
          }
          for($j = 0; $diferenca >= $duracao[$j] && $j < count($duracao)-1; $j++) 
          {
              $diferenca /= $duracao[$j];
          }
          $diferenca = round($diferenca);
          if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
          return "$diferenca $periodos[$j] {$tempo}";
      }
      }
       
      Funciona redondinho se o valor retornado for de algumas horas, mas...
      Quando passa de dois meses, ele retorna a palavra mess. Deve ser por conta dessa linha
      if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
       
      Quero que modre:
       
      2 meses atrás
      e não
      2 mess atrás.
       
      Espero que tenham entendido.
       
      Valeu
    • Por ILR master
      Boa tarde, pessoal.
      Espero que todos estejam bem.
       
      Seguinte:
      Tenho a seguinte consulta:
       
      $usuarios= "SELECT * FROM usuarios";
      $query= mysqli_query($conexao, $usuarios) or die ("Usuário não encontrado");
      $usuario = mysqli_fetch_array($query);
       
      Quero pegar apenas o campo 'nome' da tabela 'usuarios' e colocar todos os resultados da seguinte forma:
       
      $nomes = array("Rafael", "João", "Maria", "Pedro", "Patricia", "Camila");
       
      Agradeço desde já.
      Abs
       
       
    • Por babylon
      Olá galera tudo bem?
      Deixa eu perguntar, estava mexendo no meu site e queria adicionar em html essa tabela porem esta dando erro pois fica assim:
       

      Porem gostaria que ficasse assim:

      Segue o código da tabela:
      <center><table border="0">
          <tr>
      <td bgcolor="#0092df" width="24%"><a href="/categorias?ename=smartphones"><span style="font-size: 20px; color: #ffffff;"><b> <font color="#0092df">..</font>Bicicleta<br> <font color="#0092df">..</font>Track Bikes<br> <font color="#0092df">..</font>Aro 29 TKS</b></a></span><br><br><font size="5"><center><span style="background-color: #A1CD44">DE:</span></font> <br><font size="5"><s>R$ 1.999,99</center></font></s> </td><td><p><a href="/categorias?ename=smartphones"><img src="/static/img/itembicicleta.jpg"><br><font size="5"><center><span style="background-color: #A1CD44">COM - 60%:</span></font> <br><font size="5">1.199,99</font></center></a></td>
             <td><font color="#ffffff">....</font></td>
              <td bgcolor="#0092df" width="24%"><a href="/categorias?ename=smartphones"><span style="font-size: 20px; color: #ffffff;"><b> <font color="#0092df">..</font>Monitor 24"<br> <font color="#0092df">..</font>Samsung<font color="#0092df">aa.aa</font><br> <font color="#0092df">..</font>1ms 144hz</b></a></span></center></td><td><p><a href="/categorias?ename=smartphones"><img src="/static/img/itemmonitor.jpg"></a></td>
          </tr>
          </table></center>
      O que estaria errado, pois não sei como colocar nessa tabela outro fundo de outra cor, veja que usei td bgcolor="#0092df" para o azul escuro mas não sei como usaria pro "#e4f1fb" para o fundo ficar de azul claro em baixo bem como não ficou correto em altura o "DE:" com o "COM - 60%:".
      Bom é isso, obg.


    • Por marsolim
      Olá a todos. Venho com um probleminha para o qual não encontrei resposta. Talvez, eu não tenha sabido os termos certos para pesquisar. É o seguinte... estou tentando incluir, em uma lista array, índices com valores montados em uma variável a partir de outra array e não estou a conseguir. Atualmente, meu código é o seguinte...
      var ids = {     "joby": "track 01",     "dobby": "track 02",     "medz": "track 03",     "decks": "track 04,     "tecks": "track 05",     "assud": "track 06",     "mand": "track 07",     "daly": "track 08", }; var lstIds = []; for(i in ids){         lstIds[i] =  {         dock: ids[i],         adb: 0,         mdc: 0,         bah: 0,         tek: 0,         dep: 0,         tos: 0     }; }  
      Até aqui ok. É o que tenho no momento. O que estou querendo fazer é colocar, no lugar das linhas de adb: 0 até dep: 0, outra array que criei com esses índices, porque pode ser que eu precise adicionar mais valores e eu quero fazer isso na array nova porque vou usar ela em vários lugares e eu teria que alterar em todos se não fizer essa modificação. Fazendo ela, eu alteraria apenas nela mesmo. Então, agora, com a array nova, seria algo assim:
      var ids = {     "joby": "track 01",     "dobby": "track 01",     "medz": "track 01",     "decks": "track 01",     "tecks": "track 01",     "assud": "track 01",     "mand": "track 01",     "daly": "track 01", }; var juds = ["adb", "mdc", "bah", "tek", "dep"]; //lista nova com os valores var lstIds = []; for(i in ids){         lstIds[i] =  {         dock: ids[i],         adb: 0,         mdc: 0,         bah: 0,         tek: 0,         dep: 0,         tos: 0     }; }  
      O que eu preciso é incluir os valores de juds em lstIds. Da forma que está, não consigo fazer um for dentro do outro for para pegar esses dados e não consigo, também, criar ele fora e inserir com variável, tipo:
      var fJuds = ""; for(i in juds){     fJuds += juds[i] + ": 0,"; } for(i in ids){         lstIds[i] =  {         dock: ids[i],         fJuds // Aqui eu incluiria a variável no lugar das linhas...         tos: 0     }; }  
      Bem, o que eu queria saber mesmo é como eu poderia inserir uma variável no meio duma lista desse tipo... se é possível.
       
      Agradeço pela atenção...
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
×

Informação importante

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