Foros del Web » Programando para Internet » PHP »

Mostrar noticias agrupadas por categorias

Estas en el tema de Mostrar noticias agrupadas por categorias en el foro de PHP en Foros del Web. Saludos tengo una duda con PHP y Mysql que no termino de solventar. Quiero mostrar en una página las noticias agrupadas por categorias. Hasta ahora ...
  #1 (permalink)  
Antiguo 26/01/2008, 07:20
 
Fecha de Ingreso: diciembre-2006
Mensajes: 12
Antigüedad: 17 años, 3 meses
Puntos: 0
Mostrar noticias agrupadas por categorias

Saludos tengo una duda con PHP y Mysql que no termino de solventar.

Quiero mostrar en una página las noticias agrupadas por categorias. Hasta ahora lo hacía haciendo consultas del tipo:

Código PHP:
$query_rsListado sprintf("select id_noticia,titular,categoria 
                        FROM noticias     
                        WHERE categoria = nombredecategoria
                        ORDER by fecha DESC
LIMIT 4"
); 
El problema es que tengo más de 100 categorías de noticias y hacerlo así supone 100 consultas a la base de datos distintas.

Como puedo hacerlo con una sola consulta y que a traves de php separe los resultados de acuerdo a la categoria correspondiente??

Muchas gracias
  #2 (permalink)  
Antiguo 26/01/2008, 07:45
Avatar de cfranco  
Fecha de Ingreso: enero-2008
Ubicación: Barcelona - España
Mensajes: 182
Antigüedad: 16 años, 2 meses
Puntos: 6
Sonrisa Mostrar noticias agrupadas por categorias

Hola no sé si entiendo bien la consulta que haces, pero creo lo que falta es normalizar la BD, ahora si lo que pretendes es hacerlo con la misma tabla, lo que podrías hacer es hacer dos consultas SQL.

1. En la primera guardar todas las categorias que existen en tu BD y guardarlos en una etiqueta :
<select name="nombredecategoria" size="1">
... colocando resultado de la consulta a las categorias
</select>
La idea aqui es guardar todas las categorias y cuando realices un evento o seleccion re-direcciones a la misma web y te envie la variable que en tu caso seria nombredecategoria.

2. Ahora que ya tienes la variable nombredecategoria, ahora te queda ejecutar la segunda consulta sql que lo tienes en tu ejemplo.

Espero haber servido de alguna ayuda
  #3 (permalink)  
Antiguo 26/01/2008, 08:13
 
Fecha de Ingreso: diciembre-2006
Mensajes: 12
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Mostrar noticias agrupadas por categorias

Hola cfranco gracias por contestar pero creo que no me he explicado bien, lo que necesito hacer es mostrar las noticias en una misma página de la siguiente forma:

Categoria 1

Noticia 1
Noticia 2

Categoria 2

Noticia 3
Noticia 4

Y así sucesivamente...

No quiero mostrarlas cuando realice un evento, quiero mostrarlas todas a la vez pero organizadas de esta forma y sin necesidad, como he dicho antes, de hacer 100 consultas.

Saludos!
  #4 (permalink)  
Antiguo 26/01/2008, 08:41
Avatar de cfranco  
Fecha de Ingreso: enero-2008
Ubicación: Barcelona - España
Mensajes: 182
Antigüedad: 16 años, 2 meses
Puntos: 6
Ah, bueno no se si...

Mira lo que haria pero creo que no va con tu sintaxis, pero puedes adaptarlo

Código:
$sql = "SELECT categoria 
        FROM noticias
        GROUP BY categoria";

$result = mysql_query($sql,$link);
while ($fila = mysql_fetch_array($result))
{    
 $nombredecategoria = $fila['categoria'];
 $sql2 = "SELECT id_noticia,titular,categoria  
          FROM noticias      
          WHERE categoria = '$nombredecategoria' 
          ORDER by fecha DESC LIMIT 4";
 //aqui muestras tus noticias
}
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 02:50.