Ver Mensaje Individual
  #12 (permalink)  
Antiguo 26/02/2010, 09:08
Avatar de luicos
luicos
 
Fecha de Ingreso: febrero-2010
Ubicación: Galicia
Mensajes: 106
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Agrupar registros por años

A ver...., tengo una tabla en la que tengo un campo que se llama dataproba, y que tiene fechas en formato año/mes/dia.

En la 1ª consulta me saca todos los años que tengo en la BD, y en la segunda consulta me saca los datos de un usuario para el año correspondiente. Por lo tanto, tengo que poner YEAR(dataproba) para sacar los años, sinó sacaría las fechas completas.

Pero el problema no es ese, sinó que me pone una fila con el año que es lo que quería pero includo si no hay registros para ese usuario en ese año.
¿se me entiende?

Tal y como tengo el codigo con un while dentro de otro no se la forma de controlar que no me ponga esa fila

Cita:
WHERE codigousuario = '".$x."' AND dataproba = '".$row1['dataproba']."'
y esto significaria que si el año y el usuario no coinciden no devolvera nada....
Estoy de acuerdo con lo que dices, pero como me visualiza la fila de años antes de llegar a esta consulta, me pone la fila con el año y despues nada, porque como tu dices si no se cumplen las dos condiciones no visualiza nada.

Esta es la estructura del codigo ¿que dices como controlo eso?
Código PHP:
$sql999="SELECT YEAR(dataproba) FROM tabla1 GROUP BY YEAR(dataproba) ORDER BY YEAR(dataproba) DESC";
    
$result999 mysql_query($sql999,$conexion) or die(mysql_error());    
    while(
$row1 mysql_fetch_array($result999))
        {
            if(
$filas!=0)
                {
                echo 
"<tr>";
                    echo 
"<td colspan='7' bgcolor='#d7d6d6'>" .$row1['YEAR(dataproba)']. "</td>";
                echo 
"</tr>";            
                }
        
$sql9="SELECT codigoproba, dataproba, tipoproba, resultado, enlaceproba, conclusions, propostas FROM tabla1 WHERE codigousuario = '".$x."' AND YEAR(dataproba) = '".$row1['YEAR(dataproba)']."' ORDER BY dataproba DESC";
$result9 mysql_query($sql9,$conexion) or die(mysql_error());                        
        while(
$row mysql_fetch_array($result9))
                            {
                             
///////Codigo para visualizar datos///////
                            
}