Ir para conteúdo
Fórum Script Brasil
  • 0

[Resolvido] Por o valor desejado na coluna específica


dinohills

Pergunta

Boa tarde, estou montando uma tabela de horários, puxandos as horas de uma tabela no banco de dados.

A tabela tem no cabeçalho as horas de 00h ate 23h.

Meu problema esta em conseguir colocar a hora no cabeçalho correspondente, e principalmente quando existe um intervalo de hora.

Vou colocar o exemplo que montei em php e a saida em html pra ajudar.

tabela.php

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <table border="1" style="font-family: monospace;" align="center">
            <thead align="center">
            <td></td>
            <?php
            for ($i = 0; $i < 24; $i++) {
                echo "<td>" . $i . "H<br/>H:M:S</td>";
            }
            ?>
        </thead>
        <tbody>
            <?php
            $hora_array = array(9, 13, 17);
            $dia = "19/04/2012";

            echo "<tr>";
            echo "<td>$dia</td>";

            //imprimindo o array nas posições certas
            for ($i = 0; $i < 24; $i++) {
                foreach ($hora_array as $hora) {
                    if($i == $hora){
                        echo "<td>$hora</td>";
                    }else{
                        echo "<td>-</td>";
                    }                    
                }
            }
            echo "</tr>";
            ?>
        </tbody>
    </table>
</body>
</html>

Desse jeito a tabela fica assim:

tabela01.png

tabela02.png

Eu gostaria que ela ficasse desse jeito:

tabela03.png

Obs: já tentei usa break e continue no php, mas não deu certo não. Se alguém tiver uma idéia de como fazer ela sair desse jeito posta ai por favor.

Obrigado

Editado por dinohills
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

opa

então ta errado seus loops da parte debaixo...

tenta assim

<?php
$hora_array = array(9, 13, 17);
$dia = "19/04/2012";

echo "<tr>";
echo "<td>$dia</td>";

//imprimindo o array nas posições certas
for ($i = 0; $i < 24; $i++)
  {
  if (in_array($i, $hora_array))
  echo "<td>$i</td>";
  else
  echo "<td>-</td>";
  }
echo "</tr>";
?>

abrx

Link para o comentário
Compartilhar em outros sites

  • 0

E ai Churc, deu certo cara do seu jeito !!! VLW !!

Mas dexa te pergunta, e se meu array de horas fosse assim:

$hora_extensa = array("09:12:27","13:13:59","16:39:16");
Eu estou tentando imprimir esses valores, mas não estou conseguindo.
$hora_extensa = array("09:12:27","13:13:59","16:39:16");
//imprimindo o array nas posições certas
            for ($i = 0; $i < 24; $i++) {
                if (in_array($i, $hora_extensa)){
                    echo "<td>$hora_extensa[$i]</td>";
                }else{
                    echo "<td>-</td>";
            }
                   }
            echo "</tr>";

To usando o $i pra pega o valor na posição do array, mas não ta dando certo.

alguém teria uma ideia de como imprimir o valor ?

Obrigado

Editado por dinohills
Link para o comentário
Compartilhar em outros sites

  • 0

certo...

é muda um poco o esquema de busca na array rs

segue...

<?php
  $hora_extensa = array("09:12:27","13:13:59","16:39:16");
  $dia = "19/04/2012";

  echo "<tr>";
  echo "<td>$dia</td>";

//imprimindo o array nas posições certas
  for ($i = 0; $i < 24; $i++)
    {
      $hora = ($i <= 9) ? "0".$i.":" : $i.":";
      $achou = preg_grep("/^".$hora.".*/", $hora_extensa);
      if (count($achou) > 0)
          {
          end($achou);
          $chave = key($achou);
          echo "<td>".$hora_extensa[$chave]."</td>";
          }
      else
        echo "<td>---</td>";
    }
  echo "</tr>";
?>

abrss

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...