Jump to content
Fórum Script Brasil
  • 0

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


dinohills

Question

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

Edited by dinohills
Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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

Edited by dinohills
Link to comment
Share on other 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 to comment
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
      152.2k
    • Total Posts
      652k
×
×
  • Create New...