Foros del Web » Programando para Internet » PHP »

Agrupar noticias por categorias

Estas en el tema de Agrupar noticias por categorias en el foro de PHP en Foros del Web. Hola amigos tengo una duda grande :p, bueno el caso es que estoy creando un tipo blog http://megatonic.net/ y lo que quiero haces es que ...
  #1 (permalink)  
Antiguo 17/11/2012, 20:00
Avatar de maximoalexis  
Fecha de Ingreso: diciembre-2011
Mensajes: 26
Antigüedad: 12 años, 11 meses
Puntos: 0
Pregunta Agrupar noticias por categorias

Hola amigos tengo una duda grande :p, bueno el caso es que estoy creando un tipo blog

http://megatonic.net/

y lo que quiero haces es que las noticias aparezcan agrupadas por categorías, es decir en el menú de la izquierda que al presionar por ejemplo en Acer aparezcan todas las entradas con la categoría de Acer.
Gracias.
  #2 (permalink)  
Antiguo 17/11/2012, 20:48
Avatar de rottenp4nx  
Fecha de Ingreso: octubre-2012
Ubicación: Santiago
Mensajes: 417
Antigüedad: 12 años, 1 mes
Puntos: 36
Respuesta: Agrupar noticias por categorias

Viene más por la parte de SQL

Por ejemplo

Tabla Categoría

id int auto_increment,
titulo varchar(20),

Tabla Contenido

id int auto_increment,
titulo varchar(200),
texto text,
categoria int


Haces que el campo categoría de la tabla contenido haga referencia al id de la tabla categoria

después con un inner join traes todo de la categoría que quisieras por ejemplo si la categoría Acer tiene el id 1

select cont.titulo, cont.id, cont.texto, cat.id from contenido cont inner join categoria cat on cat.id = 1 and cont.categoria = cat.id;

saludos
  #3 (permalink)  
Antiguo 18/11/2012, 05:16
Avatar de feconto  
Fecha de Ingreso: noviembre-2012
Ubicación: En mi Mundo
Mensajes: 25
Antigüedad: 12 años
Puntos: 5
Respuesta: Agrupar noticias por categorias

lo que dice el compañero crea una table categoria esta hiran asociadas a las noticias

ejemplo

Categoria ID -> Saca las noticias asociadas a esta

Asocias

Código SQL:
Ver original
  1. mysql> SELECT ca.ct_id,ca.ct_titulo,noti.not_cat,noti.not_titulo FROM categoria
  2. ca,noticias noti  WHERE ca.ct_id=noti.not_cat;
  3. +-------+-----------+---------+------------------+
  4. | ct_id | ct_titulo | not_cat | not_titulo       |
  5. +-------+-----------+---------+------------------+
  6. |     1 | php       |       1 | Me Gusta Php     |
  7. |     2 | ASP.net   |       2 | Me Gusta ASp.net |
  8. |     3 | Jquery    |       3 | Me Gusta Jquery  |
  9. +-------+-----------+---------+------------------+
  10. 3 ROWS IN SET (0.00 sec)

Código PHP:
Ver original
  1. $id_not = strip_tags($_GET['id']);
  2.  
  3.     $query = sprintf("select * from noticia where not_id='%d'",  mysql_real_escape_string($id_not));
  4.     while($row = mysql_fetch_object($query))
  5.     {
  6.         echo $row->not_titulo;
  7.         echo $row->not_texto;
  8.     }

Código SQL:
Ver original
  1. -- Dumping structure for table noticias.categoria
  2. CREATE TABLE IF NOT EXISTS `categoria` (
  3.   `ct_id` INT(11) NOT NULL AUTO_INCREMENT,
  4.   `ct_titulo` VARCHAR(100) NOT NULL,
  5.   PRIMARY KEY (`ct_id`)
  6. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
  7.  
  8. -- Dumping data for table noticias.categoria: ~3 rows (approximately)
  9. /*!40000 ALTER TABLE `categoria` DISABLE KEYS */;
  10. INSERT INTO `categoria` (`ct_id`, `ct_titulo`) VALUES
  11.     (1, 'php'),
  12.     (2, 'ASP.net'),
  13.     (3, 'Jquery');
  14. /*!40000 ALTER TABLE `categoria` ENABLE KEYS */;
  15.  
  16.  
  17. -- Dumping structure for table noticias.noticias
  18. CREATE TABLE IF NOT EXISTS `noticias` (
  19.   `not_id` INT(11) NOT NULL AUTO_INCREMENT,
  20.   `not_cat` INT(11) NOT NULL,
  21.   `not_titulo` VARCHAR(200) NOT NULL,
  22.   `not_texto` text NOT NULL,
  23.   PRIMARY KEY (`not_id`)
  24. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
  25.  
  26. -- Dumping data for table noticias.noticias: ~1 rows (approximately)
  27. /*!40000 ALTER TABLE `noticias` DISABLE KEYS */;
  28. INSERT INTO `noticias` (`not_id`, `not_cat`, `not_titulo`, `not_texto`) VALUES
  29.     (1, 1, 'Me Gusta Php', 'Php Es Lo Mejor'),
  30.     (2, 2, 'Me Gusta ASp.net', 'ASP.net Es Lo Mejor'),
  31.     (3, 3, 'Me Gusta Jquery', 'JQuery Es Lo Mejor');

Etiquetas: agrupar, categorias
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:02.