Foros del Web » Programando para Internet » PHP »

Agrupar registros

Estas en el tema de Agrupar registros en el foro de PHP en Foros del Web. Buen dia amigos mi problema es el siguiente y la vedad espero me puedan ayudar, ya que concidero que este es el mejor portal de ...
  #1 (permalink)  
Antiguo 14/09/2010, 07:14
Avatar de Oviedo  
Fecha de Ingreso: abril-2007
Ubicación: Venezuela
Mensajes: 128
Antigüedad: 12 años, 5 meses
Puntos: 0
Exclamación Agrupar registros

Buen dia amigos mi problema es el siguiente y la vedad espero me puedan ayudar, ya que concidero que este es el mejor portal de consultas:

amigos tengo un select que me arroja todos los registros de una tabla perfectamente, dichos registros estan ordenados por fecha y los muestro con una tabla dinamica que mientras se insertan mas registros se van generando las nuevas filas pero todo esto en 1 sola tabla. El problema que tengo es que NECESITO AGRUPAR mis registros por fechas y mostrarlos por separado:
ejemplo: si tengo 10registros de fecha:13-09-2010, 10registros de fecha:14-09-2010 y 10registros de fecha:15-09-2010 y asi sucesibamente como hago para fitrar las fechas y agruparlas :( ?¿?¿? yo inicie tomando con un select independiente el primer registro con un LIMIT 1,0 pero me tranque porque solo comparo contra el primero... auxiliooo alguien ha hecho esto....
  #2 (permalink)  
Antiguo 14/09/2010, 07:21
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 10 años, 2 meses
Puntos: 150
Respuesta: Agrupar registros

La solucion es más sencillo de lo que parece. Te explico detenidamente:

-Antes de comenzar el bucle para mostrar las filas pon una variable $fecha="";
-Dentro del bucle (pero antes de mostrar ninguna fila) preguntamos si $fecha es distinto a la que vamos a mostrar. Si es asi insertamos "una fila en blanco", o cualquier otro separador que se te ocurra. Y finalmente le damos a $fecha el valor de la fecha que vamos a mostrar.

¿que conseguimos con esto? Pues que si hay varias filas con la misma fecha no inserta un separador, solo cuando aparezca una nueva fecha.

Espero que hayas entendido, sino, preguntame y trato de aclararlo mejor con un ejemplo.
  #3 (permalink)  
Antiguo 14/09/2010, 07:46
Avatar de Oviedo  
Fecha de Ingreso: abril-2007
Ubicación: Venezuela
Mensajes: 128
Antigüedad: 12 años, 5 meses
Puntos: 0
De acuerdo Respuesta: Agrupar registros

Guaooo amigo entonces parece que me estoy ahogando en un vaso con agua, pero por mi falta de experiencia quisas no lo veo yo entiendo perfectamente lo que me sugieres y ya añadi al codigo la condicion que me recomiendas y hasta la comente y todo. Pero no veo como resolver si estan unos 3mil registros como agruparlos aqui te anexo mi codigo que es algo sencillo:

<!-- TITULOS PRINCIPALES DE LA TABLA DE REGISTROS -->

<table align="center" cellspacing="0" cellpadding="0" border="1" width="82%">
<tr bgcolor="#006699">
<td><div align="center"><font color="white"><strong>FECHA</strong></font></div></td>
<td bgcolor="#006699"><div align="center"><font color="white"><strong>% DE EXONERACION</strong></font></div></td>
<td><div align="center"><font color="white"><strong>MONTO DEL ESTUDIO</strong></font></div></td>
<td><div align="center"><font color="white"><strong>MONTO EXONERADO</strong></font></div></td>
<td><div align="center"><font color="white"><strong>TOTAL A CANCELAR</strong></font></div></td>
</tr>
<?php
//---BUCLE PARA EXTRAER TODOS LOS REGISTROS------

$conectID = mysql_connect("localhost","root","")or die("no se puede conectar a SQL Server");
mysql_select_db("exoneracion", $conectID);
$sql="SELECT * FROM exoneraciones ORDER BY fecha";
$res=mysql_query($sql);
$nro_fila= mysql_num_rows ($res);
$fecha=""; //VARIABLE RECOMENDADA ANTES DEL BUCLE
while ($ligne = mysql_fetch_array ($res))// ESTA ES LA ESTRUCTURA REPETITIVA
{
//-----------------------------------------------------
if($fecha!=$ligne["fecha"]){ //CONDICION RECOMENDADA

echo '<tr width="96"><div align="center"><font size="1" face="Tahoma" color="#000000"></font></div></tr>';

}else{
//-----------------------------------------------------
?>
<tr bgcolor="<?php if ($nro_fila%2!=0) echo "#F2F2F2"; else echo "#FFFFFF"; ?>" onmouseout="this.style.backgroundColor='<?php if ($nro_fila%2!=0) echo "#F2F2F2"; else echo "#FFFFFF" ?>'"o="o""];">
<td width="96"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["fecha"]; ?></font></div></td>
<td width="171"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["porcentaje"]; ?></font></div></td>
<td width="187"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["m_estudio"]; ?></font></div></td>
<td width="193"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["m_exonerado"]; ?></font></div></td>
<td width="178"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["total"]; ?></font></div></td>
</tr>
<?php
$me+=$ligne["m_estudio"];
$mex+=$ligne["m_exonerado"];
$total+=$ligne["total"];
$nro_fila++;
} // fin del if
} // fin del while
mysql_free_result ($res);//Liberar Memorias
?>
</table>
</div>
<p></p>
<p></p>
<!-- TABLA DE CALCULOS DE REGISTROS ESTA DEBE ESTAR AGRUPADA POR CADA CONJUNTO DE FECHAS -->

<table align="center" cellspacing="0" cellpadding="0" border="1" width="38%">
<tr bgcolor="#FFFFFF">
<td colspan="3" bgcolor="#006699"><div align="center" class="Estilo9 Estilo10">TOTALES</div></td>
<tr bgcolor="#006699">
<td><div align="center" class="Estilo8">
<div align="center">MONTO ESTUDIO </div>
</div></td>
<td><div align="center"><span class="Estilo8">MONTO EXONERADO</span></div></td>
<td><div align="center" class="Estilo8">
<div align="center">TOTAL A CANCELAR</div>
</div></td>
<tr bgcolor="#CCCCCC">
<td width="27%"><div align="center" class="Estilo11"><font face="Tahoma"><? echo $me; ?></font></div></td>
<td width="25%"><div align="center" class="Estilo11"><font face="Tahoma"><? echo $mex; ?></font></div></td>
<td width="28%"><div align="center" class="Estilo11"><span class="Estilo3"><font face="Tahoma"><? echo $total; ?></font></span></div></td>
</table>
  #4 (permalink)  
Antiguo 14/09/2010, 07:51
Avatar de Oviedo  
Fecha de Ingreso: abril-2007
Ubicación: Venezuela
Mensajes: 128
Antigüedad: 12 años, 5 meses
Puntos: 0
De acuerdo Respuesta: Agrupar registros

ok yo agregue la $fecha=""; pero es necesario recorrer los registro o me equivoco??? porque el asunto es que tengo muchas fechas y me gustaria agruparlas por dia y dividirlas por tablas separadas eso es todo... y solo tengo eso un select total... me explico
  #5 (permalink)  
Antiguo 14/09/2010, 08:48
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 10 años, 2 meses
Puntos: 150
Respuesta: Agrupar registros

Tendrías que explicar mejor con algun ejemplo que datos tienes en los registros y como quieres que aparezcan, porque no entendí lo último. ¿quieres agrupar? ¿o te refieres a sumar algunos campos que coincidan con el mismo dia? Pon algunos ejemplos de datos de tu base de datos y luego como deberían quedar, eso ayudará bastante.
  #6 (permalink)  
Antiguo 14/09/2010, 09:08
Avatar de Oviedo  
Fecha de Ingreso: abril-2007
Ubicación: Venezuela
Mensajes: 128
Antigüedad: 12 años, 5 meses
Puntos: 0
De acuerdo Respuesta: Agrupar registros

Ok amigo ejemplo:

Base de datos:

fecha | monto 1 | monto 2 | monto 3|
13-09-2010 1 2 3
13-09-2010 7 2 3
13-09-2010 7 5 3
14-09-2010 1 2 6
15-09-2010 5 2 4
15-09-2010 5 4 3

asi como esta en base de datos los estoy mostrando con el codigo que anexe el resultado que busco es este:

fecha | monto 1 | monto 2 | monto 3|
13-09-2010 1 2 3
13-09-2010 7 2 3
13-09-2010 7 5 3

fecha | monto 1 | monto 2 | monto 3|
14-09-2010 1 2 6

fecha | monto 1 | monto 2 | monto 3|
15-09-2010 5 2 4
15-09-2010 5 4 3

Osea divir o agrupar las fechas por separado claro si existen mil registros igualmente lo haga, y lo de la suma es sumar las columnas monto 1 monto2 y monto 3 para cada tabla... Osea yo voy a tener tantas tablas como dias en la base de datos... me explique

Nota: por eso te comentaba que inicie obteniendo el primer registro para compararlo en un bucle unos con otro y agrupar que es lo que realmente no se :(.. te agradezco amigo si me puedes ayudar ya que me tienen presionado y no tengo a quien acudir... Gracias de ante manos
  #7 (permalink)  
Antiguo 14/09/2010, 09:16
Avatar de Oviedo  
Fecha de Ingreso: abril-2007
Ubicación: Venezuela
Mensajes: 128
Antigüedad: 12 años, 5 meses
Puntos: 0
De acuerdo Respuesta: Agrupar registros

<!-- TITULOS PRINCIPALES DE LA TABLA DE REGISTROS -->

<table align="center" cellspacing="0" cellpadding="0" border="1" width="82%">
<tr bgcolor="#006699">
<td><div align="center"><font color="white"><strong>FECHA</strong></font></div></td>
<td bgcolor="#006699"><div align="center"><font color="white"><strong>% DE EXONERACION</strong></font></div></td>
<td><div align="center"><font color="white"><strong>MONTO DEL ESTUDIO</strong></font></div></td>
<td><div align="center"><font color="white"><strong>MONTO EXONERADO</strong></font></div></td>
<td><div align="center"><font color="white"><strong>TOTAL A CANCELAR</strong></font></div></td>
</tr>
<?php
//---BUCLE PARA EXTRAER TODOS LOS REGISTROS------

$conectID = mysql_connect("localhost","root","")or die("no se puede conectar a SQL Server");
mysql_select_db("exoneracion", $conectID);
$sql="SELECT * FROM exoneraciones ORDER BY fecha";
$res=mysql_query($sql);
$nro_fila= mysql_num_rows ($res);
$fecha=""; //VARIABLE RECOMENDADA ANTES DEL BUCLE
while ($ligne = mysql_fetch_array ($res))// ESTA ES LA ESTRUCTURA REPETITIVA
{

?>
<tr bgcolor="<?php if ($nro_fila%2!=0) echo "#F2F2F2"; else echo "#FFFFFF"; ?>"
onmouseout="this.style.backgroundColor='<?php if ($nro_fila%2!=0) echo "#F2F2F2"; else echo "#FFFFFF" ?>'"o="o""];">
<td width="96"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["fecha"]; ?></font></div></td>
<td width="171"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["porcentaje"]; ?></font></div></td>
<td width="187"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["m_estudio"]; ?></font></div></td>
<td width="193"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["m_exonerado"]; ?></font></div></td>
<td width="178"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["total"]; ?></font></div></td>
</tr>
<?php } ?>


nota: Amigo esta es la tabla que muestro dinamicamente y alli esta el select que me muestra todo sin agruparlo...
  #8 (permalink)  
Antiguo 14/09/2010, 10:03
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 10 años, 2 meses
Puntos: 150
Respuesta: Agrupar registros

Prueba esto a ver si tuve algun error:


<?php
//---BUCLE PARA EXTRAER TODOS LOS REGISTROS------

$conectID = mysql_connect("localhost","root","")or die("no se puede conectar a SQL Server");
mysql_select_db("exoneracion", $conectID);
$sql="SELECT * FROM exoneraciones ORDER BY fecha";
$res=mysql_query($sql);
$nro_fila= mysql_num_rows ($res);
$fecha=""; //VARIABLE RECOMENDADA ANTES DEL BUCLE
$primeratabla=1;
while ($ligne = mysql_fetch_array ($res)) {

if ($fecha!=$ligne["fecha"]) {
$fecha=$ligne["fecha"];
if ($primeratabla) {echo "</table><br><br>";} // Le damos fin a la tabla para comenzar otra
?>
<!-- TITULOS PRINCIPALES DE LA TABLA DE REGISTROS -->
</table><br><br>
<table align="center" cellspacing="0" cellpadding="0" border="1" width="82%">
<tr bgcolor="#006699">
<td><div align="center"><font color="white"><strong>FECHA</strong></font></div></td>
<td bgcolor="#006699"><div align="center"><font color="white"><strong>% DE EXONERACION</strong></font></div></td>
<td><div align="center"><font color="white"><strong>MONTO DEL ESTUDIO</strong></font></div></td>
<td><div align="center"><font color="white"><strong>MONTO EXONERADO</strong></font></div></td>
<td><div align="center"><font color="white"><strong>TOTAL A CANCELAR</strong></font></div></td>
</tr>
<?php
} // Fin MOSTRAR CABECERA
?>

<tr bgcolor="<?php if ($nro_fila%2!=0) echo "#F2F2F2"; else echo "#FFFFFF"; ?>"
onmouseout="this.style.backgroundColor='<?php if ($nro_fila%2!=0) echo "#F2F2F2"; else echo "#FFFFFF" ?>'"o="o""];">
<td width="96"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["fecha"]; ?></font></div></td>
<td width="171"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["porcentaje"]; ?></font></div></td>
<td width="187"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["m_estudio"]; ?></font></div></td>
<td width="193"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["m_exonerado"]; ?></font></div></td>
<td width="178"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["total"]; ?></font></div></td>
</tr>
<?php
} // Fin MOSTRAR REGISTROS
?>
</table>
  #9 (permalink)  
Antiguo 14/09/2010, 11:28
Avatar de Oviedo  
Fecha de Ingreso: abril-2007
Ubicación: Venezuela
Mensajes: 128
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Agrupar registros

Excelenteeeeeeeeee! Vun gracias mi hermano, estoy sumamente agradecido, solo me faltaria sumar las columnas y mostrar el resultado.
Aprovecho para preguntarte algo, yo siempre he interactuado con este foro y me he preguntado como ganar las medallas o mejor dicho que debo hacer para cambiar mi status de usuario????
Un ultimo detalle para la tabla de suma, osea donde sacare los resultados de cada tabla va antes del fin registro???
  #10 (permalink)  
Antiguo 14/09/2010, 11:32
Avatar de Oviedo  
Fecha de Ingreso: abril-2007
Ubicación: Venezuela
Mensajes: 128
Antigüedad: 12 años, 5 meses
Puntos: 0
De acuerdo Respuesta: Agrupar registros

osea porque ya todo me lo muestra agrupado pero para sumar estoy haciendo esto:

$me+=$ligne["m_estudio"];
$mex+=$ligne["m_exonerado"];
$total+=$ligne["total"];

<table align="center" cellspacing="0" cellpadding="0" border="1" width="38%">
<tr bgcolor="#FFFFFF">
<td colspan="3" bgcolor="#006699"><div align="center" class="Estilo9 Estilo10">TOTALES</div></td>
<tr bgcolor="#006699">
<td><div align="center" class="Estilo8">
<div align="center">MONTO ESTUDIO </div>
</div></td>
<td><div align="center"><span class="Estilo8">MONTO EXONERADO</span></div></td>
<td><div align="center" class="Estilo8">
<div align="center">TOTAL A CANCELAR</div>
</div></td>
<tr bgcolor="#CCCCCC">
<td width="27%"><div align="center" class="Estilo11"><font face="Tahoma"><? echo $me; ?></font></div></td>
<td width="25%"><div align="center" class="Estilo11"><font face="Tahoma"><? echo $mex; ?></font></div></td>
<td width="28%"><div align="center" class="Estilo11"><span class="Estilo3"><font face="Tahoma"><? echo $total; ?></font></span></div></td>
</table>


y luego la nueva tabla donde muestro las variables pero me aparece global pero no por tabla...
  #11 (permalink)  
Antiguo 14/09/2010, 11:40
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 10 años, 2 meses
Puntos: 150
Respuesta: Agrupar registros

Exacto, si queremos sumar columnas, tendremos que llevar otras variables que vayan sumando y cuando llegue el momento de cerrar la tabla </table> antes insertaremos otra fila con los totales acumulados, e inmediatamente despues volvemos estas variables de calculo a 0 para que comiencen a sumar de nuevo en la siguiente tabla.

Te dejo para que lo intentes, resolver estas cosas de lógica son igual de importantes que saber manejar más o menos funciones de un lenguaje de programacion

PD: Si no te sale... vuelve te doy la solucion jeje
  #12 (permalink)  
Antiguo 14/09/2010, 12:05
Avatar de Oviedo  
Fecha de Ingreso: abril-2007
Ubicación: Venezuela
Mensajes: 128
Antigüedad: 12 años, 5 meses
Puntos: 0
De acuerdo Respuesta: Agrupar registros

Amigo alli voy y disculpame pero soy aprendiz y bueno quiero ir puliendome en esto, este es el codigo:

<?php
//---BUCLE PARA EXTRAER TODOS LOS REGISTROS------

$conectID = mysql_connect("localhost","root","")or die("no se puede conectar a SQL Server");
mysql_select_db("exoneracion", $conectID);
$sql="SELECT * FROM exoneraciones ORDER BY fecha";
$res=mysql_query($sql);
$nro_fila= mysql_num_rows ($res);
$fecha=""; //VARIABLE RECOMENDADA ANTES DEL BUCLE
$primeratabla=1;
while ($ligne = mysql_fetch_array ($res))// ESTA ES LA ESTRUCTURA REPETITIVA
{
if ($fecha!=$ligne["fecha"]) {
$fecha=$ligne["fecha"];
if ($primeratabla) {

//---------------------------------------------------
//AQUI SE INSERTA LA FILA????

//---------------------------------------------------


echo "</table><br><br>";} // Le damos fin a la tabla para comenzar otra

?></table><br><br>
<!-- TITULOS PRINCIPALES DE LA TABLA DE REGISTROS -->

<table align="center" cellspacing="0" cellpadding="0" border="1" width="82%">
<tr bgcolor="#006699">
<td><div align="center"><font color="white"><strong>FECHA</strong></font></div></td>
<td bgcolor="#006699"><div align="center"><font color="white"><strong>% DE EXONERACION</strong></font></div></td>
<td><div align="center"><font color="white"><strong>MONTO DEL ESTUDIO</strong></font></div></td>
<td><div align="center"><font color="white"><strong>MONTO EXONERADO</strong></font></div></td>
<td><div align="center"><font color="white"><strong>TOTAL A CANCELAR</strong></font></div></td>
</tr>

<?php
} // Fin MOSTRAR CABECERA
?>

<tr bgcolor="<?php if ($nro_fila%2!=0) echo "#F2F2F2"; else echo "#FFFFFF"; ?>"
onmouseout="this.style.backgroundColor='<?php if ($nro_fila%2!=0) echo "#F2F2F2"; else echo "#FFFFFF" ?>'"o="o""];">
<td width="96"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["fecha"]; ?></font></div></td>
<td width="171"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["porcentaje"]; ?></font></div></td>
<td width="187"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["m_estudio"]; ?></font></div></td>
<td width="193"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["m_exonerado"]; ?></font></div></td>
<td width="178"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["total"]; ?></font></div></td>
</tr>


<?php
$me+=$ligne["m_estudio"];
$mex+=$ligne["m_exonerado"];
$total+=$ligne["total"];

$nro_fila++;
} // fin del while
mysql_free_result ($res);//Liberar Memorias
?>
</table>
<p></p><p></p>
<table align="center" cellspacing="0" cellpadding="0" border="1" width="38%">
<tr bgcolor="#FFFFFF">
<td colspan="3" bgcolor="#006699"><div align="center" class="Estilo9 Estilo10">TOTALES</div></td>
<tr bgcolor="#006699">
<td><div align="center" class="Estilo8">
<div align="center">MONTO ESTUDIO </div>
</div></td>
<td><div align="center"><span class="Estilo8">MONTO EXONERADO</span></div></td>
<td><div align="center" class="Estilo8">
<div align="center">TOTAL A CANCELAR</div>
</div></td>
<tr bgcolor="#CCCCCC">
<td width="27%"><div align="center" class="Estilo11"><font face="Tahoma"><? echo $me; ?></font></div></td>
<td width="25%"><div align="center" class="Estilo11"><font face="Tahoma"><? echo $mex; ?></font></div></td>
<td width="28%"><div align="center" class="Estilo11"><span class="Estilo3"><font face="Tahoma"><? echo $total; ?></font></span></div></td>
</table>

</div>


LA TABLA QUE ESTA AL FINAL ES LA QUE ME MUESTRA LA SUMA DE CADA COLUMNA, Y CUANDO LO HAGO ME MUESTRA SOLO LOS VALORES GENERALES.. ESTOY TRATANDO DE INSERTAR LAS VARIABLES DE CALCULO ANTES DEL
echo "</table><br><br>";} // Le damos fin a la tabla para comenzar otra
PERO EN LA ULTIMA TABLA NO MUESTRA LA FILA....
Por favor salva mi vida jajajaja
  #13 (permalink)  
Antiguo 14/09/2010, 14:00
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 10 años, 2 meses
Puntos: 150
Respuesta: Agrupar registros

Realmente me confundí en el if ($primeratabla), ahi te dejo resulto, a ver si funciona:







<?php
//---BUCLE PARA EXTRAER TODOS LOS REGISTROS------

$conectID = mysql_connect("localhost","root","")or die("no se puede conectar a SQL Server");
mysql_select_db("exoneracion", $conectID);
$sql="SELECT * FROM exoneraciones ORDER BY fecha";
$res=mysql_query($sql);
$nro_fila= mysql_num_rows ($res);
$fecha=""; //VARIABLE RECOMENDADA ANTES DEL BUCLE
$primeratabla=1;
while ($ligne = mysql_fetch_array ($res))// ESTA ES LA ESTRUCTURA REPETITIVA
{
if ($fecha!=$ligne["fecha"]) {
$fecha=$ligne["fecha"];

// Mostramos los totales y le damos fin a la tabla para comenzar otra (excepto la primera)
if ($primeratabla==0) {
?>
<!-- FILA CON LOS TOTALES DE UNA TABLA -->
<tr>
<td></td>
<td></td>
<td><div align="center"><?=$me?></div></td>
<td><div align="center"><?=$mex?></div></td>
<td><div align="center"><?=$total?></div></td>
</tr>
</table><br><br>

<?php
$me=0;$mex=0;$total=0;
}
$primeratabla=0;

?>
<!-- TITULOS PRINCIPALES DE LA TABLA DE REGISTROS -->

<table align="center" cellspacing="0" cellpadding="0" border="1" width="82%">
<tr bgcolor="#006699">
<td><div align="center"><font color="white"><strong>FECHA</strong></font></div></td>
<td bgcolor="#006699"><div align="center"><font color="white"><strong>% DE EXONERACION</strong></font></div></td>
<td><div align="center"><font color="white"><strong>MONTO DEL ESTUDIO</strong></font></div></td>
<td><div align="center"><font color="white"><strong>MONTO EXONERADO</strong></font></div></td>
<td><div align="center"><font color="white"><strong>TOTAL A CANCELAR</strong></font></div></td>
</tr>

<?php
} // Fin MOSTRAR CABECERA
?>

<tr bgcolor="<?php if ($nro_fila%2!=0) echo "#F2F2F2"; else echo "#FFFFFF"; ?>"
onmouseout="this.style.backgroundColor='<?php if ($nro_fila%2!=0) echo "#F2F2F2"; else echo "#FFFFFF" ?>'"o="o""];">
<td width="96"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["fecha"]; ?></font></div></td>
<td width="171"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["porcentaje"]; ?></font></div></td>
<td width="187"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["m_estudio"]; ?></font></div></td>
<td width="193"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["m_exonerado"]; ?></font></div></td>
<td width="178"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["total"]; ?></font></div></td>
</tr>


<?php
$me+=$ligne["m_estudio"];
$mex+=$ligne["m_exonerado"];
$total+=$ligne["total"];

$nro_fila++;
} // fin del while
mysql_free_result ($res);//Liberar Memorias
?>
<!-- FILA CON LOS TOTALES DE LA ULTIMA TABLA YA QUE SE SALE DEL BUCLE -->
<tr>
<td></td>
<td></td>
<td><div align="center"><?=$me?></div></td>
<td><div align="center"><?=$mex?></div></td>
<td><div align="center"><?=$total?></div></td>
</tr>
</table>
  #14 (permalink)  
Antiguo 14/09/2010, 14:50
Avatar de Oviedo  
Fecha de Ingreso: abril-2007
Ubicación: Venezuela
Mensajes: 128
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Agrupar registros

Hermano agradecido te cuento que le consegui la solucion hace unos minutos y es parecida a la que me das, que realmente funciona al pelo!.... Muchas gracias mi amigo y espero vernos pronto por este portal me gustaria que me guiaras con respecto a las medallas para ir escalando de nivel como usuario de este foro.
Gracias una vez mas y no lo ubiese logrado sin tu ayuda señores que tengan el mismo problema aqui tambien les pongo mi solucion:

<?php

//---BUCLE PARA EXTRAER TODOS LOS REGISTROS------

$conectID = mysql_connect("localhost","root","")or die("no se puede conectar a SQL Server");
mysql_select_db("exoneracion", $conectID);
$sql="SELECT * FROM exoneraciones ORDER BY fecha";
$res=mysql_query($sql);
$nro_fila= mysql_num_rows ($res);
$fecha=""; //VARIABLE RECOMENDADA ANTES DEL BUCLE
$primeratabla=1;
while ($ligne = mysql_fetch_array ($res))// ESTA ES LA ESTRUCTURA REPETITIVA
{
if ($fecha!=$ligne["fecha"]) {
$fecha=$ligne["fecha"];
if ($primeratabla) {
echo "<td colspan='2'><div align='center'>TOTALES</div></td>";
echo "<td><div align='center'>";echo $me; echo "</div></td>";
echo "<td><div align='center'>";echo $mex; echo "</div></td>";
echo "<td><div align='center'>";echo $total; echo "</div></td>";
echo "</table><br><br>";} // Le damos fin a la tabla para comenzar otra
$me=0;
$mex=0;
$total=0;
?>
<!-- TITULOS PRINCIPALES DE LA TABLA DE REGISTROS -->

<table align="center" cellspacing="0" cellpadding="0" border="1" width="82%">
<tr bgcolor="#006699">
<td><div align="center"><font color="white"><strong>FECHA</strong></font></div></td>
<td bgcolor="#006699"><div align="center"><font color="white"><strong>% DE EXONERACION</strong></font></div></td>
<td><div align="center"><font color="white"><strong>MONTO DEL ESTUDIO</strong></font></div></td>
<td><div align="center"><font color="white"><strong>MONTO EXONERADO</strong></font></div></td>
<td><div align="center"><font color="white"><strong>TOTAL A CANCELAR</strong></font></div></td>
</tr>

<?php
} // Fin MOSTRAR CABECERA
$me+=$ligne["m_estudio"];
$mex+=$ligne["m_exonerado"];
$total+=$ligne["total"];
?>

<tr bgcolor="<?php if ($nro_fila%2!=0) echo "#F2F2F2"; else echo "#FFFFFF"; ?>"
onmouseout="this.style.backgroundColor='<?php if ($nro_fila%2!=0) echo "#F2F2F2"; else echo "#FFFFFF" ?>'"o="o""];">
<td width="27%"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["fecha"]; ?></font></div></td>
<td width="25%"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["porcentaje"]; ?></font></div></td>
<td width="187"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["m_estudio"]; ?></font></div></td>
<td width="193"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["m_exonerado"]; ?></font></div></td>
<td width="178"><div align="center"><font size="1" face="Tahoma" color="#000000"><? echo $ligne["total"]; ?></font></div></td>
</tr>


<?php
$nro_fila++;
} // fin del while
mysql_free_result ($res);//Liberar Memorias
/**/
echo "<td colspan='2'><div align='center'>TOTALES</div></td>";
echo "<td><div align='center'>";echo $me; echo "</div></td>";
echo "<td><div align='center'>";echo $mex; echo "</div></td>";
echo "<td><div align='center'>";echo $total; echo "</div></td>";
?></table>
  #15 (permalink)  
Antiguo 14/09/2010, 15:25
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 10 años, 2 meses
Puntos: 150
Respuesta: Agrupar registros

genial, me alegro que lo sacaras sin esta ultima ayuda!

El tema de las estrellas pues trata de darle arriba a Nuevos mensajes y trata de ayudar a gente que aun tenga 0 o 1 respuestas, asi si ellos te votan podras ir ganando karma.
  #16 (permalink)  
Antiguo 15/09/2010, 09:35
Avatar de Oviedo  
Fecha de Ingreso: abril-2007
Ubicación: Venezuela
Mensajes: 128
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Agrupar registros

Si amigo lo pude hacer, y concidero que tengo algunos codigos que al publico les puede interezar. Haaa arriba NUEVO MENSAJES. ok! Lo que no entiendo es lo que dices con:
"si ellos te votan podras ir ganando karma"

Me imagino que es si ellos me califican algo asi??? Bueno amigo Vun muy agradecido, hoy entregue mi software y corrio excelente. Gracias por tu ayuda y estaria agradecido si me orientas en como poder ubicarte cualquier cosa??? o a que espacio debe acudir??¿?¿? Señores si tienen el mismo problema que yo tuve lean bien este tema que lo resolveran

Gracias
  #17 (permalink)  
Antiguo 15/09/2010, 09:52
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 10 años, 2 meses
Puntos: 150
Respuesta: Agrupar registros

Fijate en el icono Ahi le puedes ir dando karma (es lo que hace que aparezcan mas estrellas) a los que te ayuden.

A mi no me des, que ya estoy al máximo jejeje, trata de ayudar a otros, te aseguro que se aprende mucho ayudando a los demas, sin darte cuenta encuentras trucos, scripts, formas de programar que te van sirviendo :)

Etiquetas: agrupar, registros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:54.