Buscador


En todo Internet
En Uterra.Com

Contenidos


Hacer un recuento de los resultados almacenados en nuestra base de datos puede resultar muy útil, tanto para nosotros mismo como administradores de nuestro sitio Web, como para presentar a los usuarios un resumen, por ejemplo, de los comentarios que ha publicado, o los artículos que tenemos publicados en cada categoría: HTML, PHP, MySQL, etc.

También podemos hacer un recuento de los usuarios que han validado o no su cuenta, quienes son hombres o mujeres o hacer un recuento de las veces que se han identificado en nuestra Web.

En nuestro caso, aprovechando la tabla que tenemos como demo para los registros y mostrar el funcionamiento del paginador Paginator, vamos ha hacer un recuento de los registros que ha habido cada día. Dado que el número de registros es muy alto, también vamos a paginar estos resultados, que como veremos es muy sencillo.

En la mayoría de los casos no necesitaremos la paginación para cumplir el objetivo de este código, ya que el sexo, la validación, o los artículos publicados en cada categoría, no tendrán un número de resultados tan altos como para precisar de paginación. No obstante, el número de comentarios que cada usuario ha publicado en nuestra Web o el recuento de los registros realizados cada día, a buen seguro que precisará de ser paginado.

El código que presentamos a continuación se presenta paginado, para eliminar la paginación es tan sencillo como eliminar la variable $_pagi_cuantos que indica el número de resultados por página en la paginación, el include() de paginación, y por supuesto, la barra de navegación e información de paginación. Las partes que pueden ser eliminadas han sido marcadas con ( **** ).

Una observación, bajo la columna de porcentaje, aparece “¿ 100 % ?”, estos interrogantes indican que esa no es la probabilidad correcta de esa página, sino que la suma de todas las probabilidades seria el 100 %. Lo mismo es aplicable a la columna frecuencia. Es decir, solo es correcta cuando no hay paginación o todos los resultados aparecen en la primera página. Se puede hacer una aproximación, y solo seria una aproximación, si dividimos 100 entre el valor de la variable $_pagi_cuantos.

También hemos agregado la posibilidad de que las filas tengan colores alternos para facilitar la lectura.

Sin más, el código es el siguiente:
 

<!DOCTYPE html>
<html lang="es">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Recuento de resultados.</title>
    <meta name="robots" content="noindex, nofollow" />

</head>

<body>

<h2 align="center">Recuento de usuarios registrados por fecha.</h2>

<?php

echo "<div align='center'> 
    <table border='0' width='600' style='font-family: Verdana; font-size: 10pt' id='table1' cellspacing='0' cellpadding='0'> 
    <tr>  
      <td width='33%'><b>Valor</b></td>    
      <td width='33%'><b>Frecuencia</b></td>  
      <td width='33%'><b>Porcentaje %</b></td>  
    </tr>"


include(
"abre_conexion.php"); 
/*
------ Contamos numero total de registros
Si queremos poner un condicional lo haremos de la siguiente manera:
$_Cuen_1 = " SELECT * FROM $tabla WHERE sexo = 'mujer' "; 
*/

    
$_Cuen_1 " SELECT * FROM $tabla ";  
    
$_Cuenta_1 mysql_query($_Cuen_1);  
    
$_Total_1 mysql_num_rows($_Cuenta_1);
// ------------------------------------------------------ 
// Iniciamos el paginador y usamos GROUP y COUNT para hacer el recuento de las diferentes fechas

    
$_pagi_sql "SELECT fecha, COUNT(*) AS cuenta FROM $tabla GROUP BY fecha ORDER BY id DESC";    
    
$_pagi_result mysql_query($_pagi_sql);
    
$_total_registros mysql_num_rows($_pagi_result);      // Cuenta el numero de grupos

    
$_pagi_cuantos 50;    // Numero de registros por pagina ( **** )

        
include("paginator.inc.php");    // ( **** )

while ($registro mysql_fetch_array($_pagi_result)){    

    
$cuenta 0;        // Combertimos -cuenta- en variable operativa   
    
$cuenta $cuenta $registro['cuenta'];    // Si no deseamos operar esta variable en el ECHO ponemos ".$registro['cuenta']."  

// Calculamos los porcentajes  
    
$porcen_fecha = ($cuenta 100) / $_Total_1;  
    
$porcentaje_fecha round($porcen_fecha,4);        // Redondeamos a 4 decimales  

// Introducimos colores alternos para las filas ( **** )

if (@$colorfila == 0){ 
       
$color "#CCFFFF";     // Color para las filas impares 
       
$colorfila 1
    }else{ 
       
$color "#FFCC99";    // Color para las filas pares 
       
$colorfila 0
    } 

echo
"    
    <tr>  
      <td width='33%' bgcolor='"
.$color."'>".$registro['fecha']."</td>    
      <td width='33%' bgcolor='"
.$color."'>$cuenta</td>  
      <td width='33%' bgcolor='"
.$color."'>$porcentaje_fecha %</td>  
    </tr>    
"
;  
}  
include(
"cierra_conexion.php"); 

echo 
"
    <tr>  
      <td width='33%'><b>Fechas: 
$_total_registros</b></td>    
      <td width='33%'><b>
$_Total_1</b></td>  
      <td width='33%'><b>¿ 100 % ?</b></td>  
    </tr>  
    </table> 
</div>"
;  

    
// Incluimos las barras de navegación e informacion ( **** )

            
echo "<div id = \"clase1\"><p align=\"center\">".$_pagi_navegacion."</p>
           <p align=\"right\">El total de registros en la consulta <b>"
.$_Num_regis_Consul."</b></p>
            <p align=\"right\">Registros desde el "
.$_pagi_info."</p> </div>";
?> 

</body>

</html>