Rigiendome por el campo "numero", me sume el "iva" según el numero que correspona en php

Tengo una consulta que me imprime todos mis registros en una tabla...
Donde tengo un campo llamado "numero" y otro llamado "iva".. Y otros mas.
En el campo "numero" Puede ser cualquier numero entero comenzando desde "1" en adelante.

Ejemplo:

http://www.crbcentral.com/tablas/ejemplo1.png

Y lo que quiero es que rigiendome por el campo "numero", me sume el "iva" según el numero que correspona, osea que de todos los "1" me haga la suma del iva,
de todos los "2" igual el iva y del numero "3" lo mismo. Y me los imprima justo debajo cuando termina cada numero:

http://www.crbcentral.com/tablas/ejemplo2.png

Este es mi código de la tabla:

<?php
include("conexion.php");
$fila_campos=mysql_query("SELECT * FROM registros WHERE id_proyecto=$id_proyecto;") or die (mysql_error()); 
?>
<table>
 <thead>
 <tr> 
 <th><div>numero</div></th>
 <th><div>nombre</div></th>
 <th><div>direccion</div></th>
 <th><div>telefono</div></th> 
 <th><div>producto</div></th>
 <th><div>costo</div></th>
 <th><div>iva</div></th> 
 </tr>
 </thead>
 <?php 
 while ($fila=mysql_fetch_array($fila_campos))
 {
 ?>
 <tr>
 <td>
 <div><?php echo $fila["numero"]; ?></div></td>
 <td >
 <div ><?php echo $fila["nombre"]; ?></div></td>
 <td >
 <div ><?php echo $fila["direccion"]; ?></div></td>
 <td >
 <div ><?php echo $fila["telefono"]; ?></div></td>
 <td >
 <div ><?php echo $fila["producto"]; ?></div></td>
 <td >
 <div ><?php echo $fila["costo"]; ?></div></td>
 <td >
 <div ><?php echo $fila["iva"]; ?></div></td>
 </tr>
 <?php
 }
 ?>
 </table>

1 Respuesta

Respuesta
1
¿
<?php
$numeroActual=1;
$suma = 0;
while ($fila=mysql_fetch_array($fila_campos))
{
 if ($fila['numero'] == $numeroActual) 
 {
   $suma += $fila['iva'];
 }
 else 
{
   echo '<tr><td colspan="4"></td> <td>total </td><td>'.$suma."</td></tr>";
   $suma = $fila['iva']; // empezamos la suma con el iva del numero actual que es distinto al anterior.
   $numeroActual = $fila['numero']; 
}
?>
<tr>
<td>
<div><?php echo $fila["numero"]; ?></div></td>
<td >
<div ><?php echo $fila["nombre"]; ?></div></td>
<td >
<div ><?php echo $fila["dirección"]; ?></div></td>
<td >
<div ><?php echo $fila["teléfono"]; ?></div></td>
<td >
<div ><?php echo $fila["producto"]; ?></div></td>
<td >
<div ><?php echo $fila["costo"]; ?></div></td>
<td >
<div ><?php echo $fila["iva"]; ?></div></td>
</tr>
<?php
}
?>

Básicamente lo que haces es sumar en cada ciclo el iva del numero actual. Inicias el valor del numero al mínimo valor que permites que imagino que sera 1. sumas el iva y cuando el numero que lees de la base de datos es distinto, imprimes la linea con el total del anterior y cambias los parámetros NumeroAnterior y Suma para volver a empezar la suma

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas