Saludos
No se si de pronto no me di a entender.
Lo intestaste de esta manera
Código PHP:
Ver original<?php
$sql = mysql_query("SELECT * FROM tablauL WHERE nombres = '$_POST[nombres]' GROUP BY nombres");
{
?>
<table align="center" cellpadding="0" cellspacing="0" border="0" style="width:950px;padding:0;margin:0;">
<?php
//Obtenemos valor nombre
$nombres=$datos[nombres];
$sql2 = mysql_query("SELECT * FROM tablauL WHERE categorias = '$datos[categorias]' GROUP BY categorias"); {
//Obtenemos la categoria
$categoria=$cat2[categorias];
$sql3 = mysql_query("SELECT * FROM tablauL WHERE glosa = '$cat2[tipo]' AND nombres = '$datos[nombres]' GROUP BY tipo"); {
//Inicializacion de Contadores
$rowspanNombre=0;
$rowspanCategoria=0;
$sql4 = mysql_query("SELECT SUM(monto) AS monto FROM tablauL WHERE categorias = '$cat2[categorias]' AND nombres = '$datos[nombres]' AND tipo = '$item[tipo]'"); {
echo "<tr>";
$monto_final = "$mm[monto]";
//comparamos con el que trae la base de datos
if($nombres==$datos[nombres]){
$rowspanNombre++;
}
if($categoria==$datos[nombres]){
$rowspanCategoria++;
}
echo "<td width=\"275\" height=\"30\" rowspan=\"$rowspanNombre\">$datos[nombres]</td>";
echo "<td width=\"246\" rowspan=\"$rowspanCategoria\">$cat2[categorias]</td>";
echo "<td width=\"305\">$item[tipo]</td>";
echo "<td width=\"114\">$mm[monto]</td>";
$monto_final2 = ($monto_final2 + $monto_final);
echo "</tr>";
}
}
}
?>
</table>
<?php
}
?>
EDITADO: No imprimas de una vez la tabla cada vez que ejecuta un ciclo sino guárdala en una variable y después si imprimes