PHP - Sumar valores de columnas de una tabla generada por bucle for

 
Vista:
sin imagen de perfil
Val: 20
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Sumar valores de columnas de una tabla generada por bucle for

Publicado por Ricardo (11 intervenciones) el 20/03/2020 16:56:42
Hola a todos! Solicito por favor si alguien puede ayudarme con lo siguiente:

Tengo una carta gantt generada con bucle for en php, la cual contiene una serie de actividades a realizar por semana y la cantidad de trabajadores por cada actividad y por cada semana. Pero lo que necesito obtener es la suma de trabajadores por cada semana y no sé como obtener eso. En la última fila de la tabla puse los valores que necesito obtener. El código que tengo es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<table cellspacing="0" id="gvMain" style="width:100%;border-collapse:collapse;">
 
 
	 <tr class="GridViewScrollHeader">
      <td>Edi/Bor</td>
	  <td>Item Cub</td>
	  <td>HH</td>
	  <td>N° Trab.</td>
      <td style="width: 300px;text-align:right; display: inline-block">Actividad a Programar \ Fecha Inicio Semana</td>
 
      <?php
		$fecha_ini=$dia->fecha_ini;
		$aumento=0;
 
	  for($i=1; $i<=$dia->duration; $i++):
 
			$aumento += 604800;
			$fecha1= strtotime ($fecha_ini) ;
			$nuevafecha= $fecha1+$aumento-604800;
 
			$nuevafecha2 = date ( 'd-m-y' , $nuevafecha );
 
	  ?>
 
      <td class="rotar"><?php echo $nuevafecha2;?></td>
 
     <?php endfor;
 
	 ?>
	 </tr>
 
	 <tr class="GridViewScrollHeader">
      <td>.</td>
	  <td>.</td>
	  <td>.</td>
	  <td></td>
      <td style="width: 300px; display: inline-block">Actividad a Programar \ N° Semana del Proyecto</td>
      <?php for($i=1; $i<=$dia->duration; $i++):?>
      <td style="text-align:center"><?php echo "sem"." ".$i;?></td>
     <?php endfor; ?>
	 </tr>
	 <?php
	 $total_hh=0;
	 $total_trab=0;
      foreach($users as $user){
        ?>
        <tr class="GridViewScrollItem">
          <td>
			<a href="index.php?view=items&opt=edit&id=<?php echo $user->id; ?>" class="btn btn-warning btn-xs"><i class='fa fa-pencil'></i></a>
			<a href="index.php?action=items&opt=del&id=<?php echo $user->id; ?>" class="btn btn-danger btn-xs"><i class='glyphicon glyphicon-remove'></i></a>
          </td>
		<td align="center"><?php echo substr($user->item_cub, 0, 50);; ?></td>
		<td align="center"><?php echo substr($user->HH, 0, 50);; ?></td>
		<td align="center"><?php echo substr($user->cant_trab, 0, 50);; ?></td>
        <td><?php echo substr($user->title, 0, 50);; ?></td>
      <?php for($i=1; $i<=$dia->duration; $i++):?>
	  <td align="center" style="<?php if($user->start<=$i && $user->finish >=$i){ echo "background: $user->color;";}?>"><?php if($user->start<=$i && $user->finish >=$i){echo $user->cant_trab; }?></td>
    <?php
	endfor;
 
	$total_hh= $total_hh +$user->HH ;
	$total_trab= $total_trab +$user->cant_trab ;
	}
	?>
        </tr>
		 <tr class="GridViewScrollItem">
			<td></td>
			<td>Total HH</td>
			<td align="center"><?php echo $total_hh; ?></td>
			<td></td>
			<td align="right">Total Trabajadores</td>
			 <?php for($i=1; $i<=$dia->duration; $i++):?>
			<td style="text-align:center"><?php echo $total_trab;  ?></td>
			<?php endfor; ?>
		 </tr>
        <?php
 
echo "</table>";
?>




tabla_gantt
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Sumar valores de columnas de una tabla generada por bucle for

Publicado por Julio (830 intervenciones) el 20/03/2020 19:17:52
Hola.

Créate un array de semanas donde vayas sumando los valores. Algo así:

1
2
3
4
5
$totalSemana = array(
    'sem1' => 0,
    'sem2' => 0,
    'sem3' => 0
);

Cuando vayas a mostrar un valor por pantalla, se lo sumas además a la semana correspondiente a este array. Si las semanas son dinámicas como creo que he visto y vas generándolas, siempre puedes hacer algo así:

1
2
3
4
$totalSemana = array();
for($i = 1; $i <= $dia->duration; $i++) {
    $totalSemana['sem' . $i] = 0
}

E irás construyendo el array poco a poco y de forma dinámica.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar