Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/04/2009, 10:02
toniveas
 
Fecha de Ingreso: diciembre-2001
Mensajes: 118
Antigüedad: 22 años, 4 meses
Puntos: 0
Sistema archive como el de Fotolog

Hola!

Estoy intentando crear un sistema de archive como fotolog, osea, que muestre en un listado los meses en los que publiqué algun post y este listado esté dentro de un listado de años.

2009
enero (1)
febrero (0)
....
2008
enero (2)
febrero (5)
....

Para ello hago una consulta para saber si publiqué algun post (en la categoria 9)cada año, esta primera consulta realiza una segunda para saber cuantos posts publiqué cada mes de cada año.

Viene a ser esto:

Código PHP:
echo "<ul id='archivo_submenu'>";
$consulta_ano_blog "SELECT DISTINCT YEAR( fecha ) AS anio FROM tabla WHERE cat = 9 GROUP BY YEAR( fecha ) ORDER BY fecha desc"
$resultado_ano_blog mysql_query($consulta_ano_blog);

while (
$rab mysql_fetch_row($resultado_ano_blog)){
echo 
"<li class='year'>\n";
echo 
"<h5><a href='$rab[0]'>$rab[0]</a></h5>\n";
if (
$rab[0] == 2009){
echo 
"<ul id='months2009' class='selected'>\n";
} else {
echo 
"<ul id='months$rab[0]'>\n";

$consulta_mes_blog "SELECT CASE MONTH( fecha ) 
        WHEN 1 
        THEN 'enero' 
        WHEN 2 
        THEN 'febrero' 
        WHEN 3 
        THEN 'marzo' 
        WHEN 4 
        THEN 'abril' 
        WHEN 5 
        THEN 'mayo' 
        WHEN 6 
        THEN 'junio' 
        WHEN 7 
        THEN 'julio' 
        WHEN 8 
        THEN 'agosto' 
        WHEN 9 
        THEN 'septiembre' 
        WHEN 10 
        THEN 'octubre' 
        WHEN 11 
        THEN 'noviembre' 
        WHEN 12 
        THEN 'diciembre' 
        END AS mes,  
        count(fecha) AS posts 
        FROM tabla 
        WHERE cat = 9 AND YEAR(fecha) = $rab[0]
    GROUP BY MONTH( fecha )
        ORDER BY fecha asc"

    
$resultado_mes_blog mysql_query($consulta_mes_blog);
    while (
$rmb mysql_fetch_row($resultado_mes_blog)){
    echo 
"<li><a href='#' title='#'>$rmb[0] ($rmb[1])</a></li>\n";
    };
    
mysql_free_result($resultado_mes_blog);

    echo 
"</ul>\n">;
    echo 
"</li>\n">;
    };
    
mysql_free_result($resultado_ano_blog);
    echo 
"</ul>\n"
Lo bueno es que cada consulta independiente funciona correctamente, pero las 2 una embebida dentro de la otra no. ¿No es posible crear una consulta dentro del bucle de otra consulta?