Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Com o código abaixo:
<?php
include "cabecalho.php";
include "config.php";
$func = (int)$_GET['func'];
$sql = "SELECT * FROM baliza WHERE func = '$func' ";
$query = mysql_query($sql);
$res = mysql_fetch_assoc ($query);
echo $res['nome'];
?>
<table class="tblGrid">
<tr>
<td>Data</td>
<td>Semana do ano</td>
</tr>
<?php
$sql = "SELECT * FROM bancohoras WHERE func = '$func' ORDER BY data ";
$query = mysql_query ($sql) or die (mysql_error());
while ($linha = mysql_fetch_array ($query)){
$data = date("W",strtotime ($linha['data']));
?>
<tr>
<td><?php echo date ('d-m-Y',strtotime ($linha['data'])) ?></td>
<td><?php echo $data; ?></td>
</tr>
<?php
}
?>
</table>
<br />
Eu tenho o resultado abaixo:
[table=Tabela1][tr][td]Data[/td][td]Semana do ano[/td][/tr]
[tr][td]02-06-2013[/td][td]22[/td][/tr]
[tr][td]03-06-2013[/td][td]23[/td][/tr]
[tr][td]06-06-2013[/td][td]23[/td][/tr]
[tr][td]07-06-2013[/td][td]23[/td][/tr]
[tr][td]10-06-2013[/td][td]24[/td][/tr]
[tr][td]11-06-2013[/td][td]24[/td][/tr]
[tr][td]14-06-2013[/td][td]24[/td][/tr]
[tr][td]15-06-2013[/td][td]24[/td][/tr]
[tr][td]18-06-2013[/td][td]25[/td][/tr]
[tr][td]19-06-2013[/td][td]25[/td][/tr]
[/table]
Agora como eu faço para a cada vez em que o número da coluna Semana do ano for maior que o último seja inserido uma linha em brando separando as semanas como no exemplo abaixo?
[table=Tabela2][tr][td]Data[/td][td]Semana do ano[/td][/tr]
[tr][td]02-06-2013[/td][td]22[/td][/tr]
[tr][td]linha em branco[/td][td]linha em branco[/td][/tr]
[tr][td]03-06-2013[/td][td]23[/td][/tr]
[tr][td]06-06-2013[/td][td]23[/td][/tr]
[tr][td]07-06-2013[/td][td]23[/td][/tr]
[tr][td]linha em branco[/td][td]linha em branco[/td][/tr]
[tr][td]10-06-2013[/td][td]24[/td][/tr]
[tr][td]11-06-2013[/td][td]24[/td][/tr]
[tr][td]14-06-2013[/td][td]24[/td][/tr]
[tr][td]15-06-2013[/td][td]24[/td][/tr]
[tr][td]linha em branco[/td][td]linha em branco[/td][/tr]
[tr][td]18-06-2013[/td][td]25[/td][/tr]
[tr][td]19-06-2013[/td][td]25[/td][/tr]
[tr][td]linha em branco[/td][td]linha em branco[/td][/tr]
[/table]
Caro João Rafael Martins, obrigado pela ajuda. Testei seu código aqui mas ainda não é o que preciso. Ele está alternando as linhas:
[table=Resultado]
[tr][td]Data[/td][td]Semana do ano[/td][/tr]
[tr][td]02-06-2013[/td][td]22[/td][/tr]
[tr][td]linha em branco[/td]
[td]linha em branco[/td][/tr]
[tr][td]06-06-2013[/td][td]23[/td][/tr]
[tr][td]linha em branco[/td]
[td]linha em branco[/td][/tr]
[tr][td]10-06-2013[/td][td]24[/td][/tr]
[tr][td]linha em branco[/td]
[td]linha em branco[/td][/tr]
[tr][td]14-06-2013[/td][td]24[/td][/tr]
[tr][td]linha em branco[/td][td]linha em branco[/td][/tr]
[tr][td]18-06-2013[/td][td]25[/td][/tr]
[tr][td]linha em branco[/td][td]linha em branco[/td][/tr]
[/table]
Se tiver mais alguma dica agradeço.
Consegui fazer o que queria assim:
<?php
$carga_semanal = "40"; // Limite de horas por semana
$carga_mensal = 0;
<table class="tblGrid"><tr>
<td>Data</td>
<td>Semana do ano</td>
<td>Horas trabalhadas</td></tr>
<?php
$sql = "SELECT * FROM bancohoras WHERE nrfun = '$nrfun' ORDER BY data ";
$query = mysql_query ($sql) or die (mysql_error());
$inicioSemana = 0;
while ($linha = mysql_fetch_array ($query)){
$horas_trabalhadas = strtotime ($linha['ht']) - strtotime($linha['hi']);
$horas[] = $horas_trabalhadas/3600; //print_r ($horas);
$carga_mensal += $horas_trabalhadas/3600; // Acumular horas trabalhadas no mes
$data = date ('d-m-Y',strtotime ($linha['data']));
$semana = date("W",strtotime ($linha['data']));
if($inicioSemana == 0) {
$inicioSemana = $semana;
}
if($inicioSemana != $semana){
$stotal = array_sum ($horas);
$horas = array (); //zera o array para reiniciar a soma
if ($stotal >= $carga_semanal) {$n = "<font color='red'>Crédito de " . ($stotal - $carga_semanal);}
if ($stotal <= $carga_semanal) {$n = "<font color=''>Débito de " . ($carga_semanal - $stotal);}
echo "<tr bgcolor='#E6E6FA'><td colspan='6'>".$stotal." Horas semanais | ".$n." Horas </font></td></tr>";
}
?>
<tr>
<td><?php echo $data; ?></td>
<td><?php echo $semana; ?></td>
<td><?php echo $horas_trabalhadas/'3600' ?></td>
</tr>
<?php
$inicioSemana = $semana;
}
?>
</table>
O resultado então é:
[table=Resultado]
[tr][td]Data[/td][td]Semana do ano[/td][td]Horas trabalhadas[/td][/tr]
[tr][td]02-06-2013[/td][td]22[/td][td]12[/td][/tr]
[tr][td]24 Horas semanais[/td][td]Débito de 4 Horas[/td][td][/td][/tr]
[tr][td]03-06-2013[/td][td]23[/td][td]12[/td][/tr]
[tr][td]06-06-2013[/td][td]23[/td][td]12[/td][/tr]
[tr][td]07-06-2013[/td][td]23[/td][td]12[/td][/tr]
[tr][td]36 Horas semanais[/td][td]Débito de 4 Horas[/td][td][/td][/tr]
[tr][td]10-06-2013[/td][td]24[/td][td]12[/td][/tr]
[tr][td]11-06-2013[/td][td]24[/td][td]12[/td][/tr]
[tr][td]14-06-2013[/td][td]24[/td][td]12[/td][/tr]
[tr][td]15-06-2013[/td][td]24[/td][td]12[/td][/tr]
[tr][td]48 Horas semanais[/td][td]Débito de 4 Horas[/td][td][/td][/tr]
[tr][td]18-06-2013[/td][td]25[/td][td]12[/td][/tr]
[tr][td]19-06-2013[/td][td]25[/td][td]12[/td][/tr]
[/table]
O problema agora é com o subtotal de horas trabalhadas por semana. O código não está somando corretamente.
Você pode fazer assim:
<?php
while ($linha = mysql_fetch_array ($query))
{