Comunidad de diseño web y desarrollo en internet online

Listar categorias con cantidad de articulos (dos tablas)

Citar            
MensajeEscrito el 22 Ene 2012 06:59 pm
Hola amigos:

Les escribo desde argentina para ver si me alguien me puede orientar y hechar una mano, mis conocimientos son algo limitados y la verdad llevo varios dias lidiando con un embrollo que no se resolver:

Resulta que tengo un pequeño CMS en la web de mi escuela, con dos tablas:

CATEGORIAS (en total son 20 categorias, pero para muestra... van dos:

Código :

+---------+-------------+
| cat_id  | categoria   |
+---------+-------------+
| 1       | academicas  |
| 2       | eventos     |
+---------+-------------+



NOTICIAS:

Código :

+----+----------+----------------------+---------+-----------+
| id | categoria| titulo               | texto   | foto      |
+----+----------+----------------------+---------+-----------+
| 1  | 2        | Titulo de la nota 1  |texto....| img1.jpg  |
| 2  | 1        | Titulo de la nota 2  |texto....| img2.jpg  |
| 3  | 2        | Titulo de la nota 3  |texto....| img3.jpg  |
| 4  | 1        | Titulo de la nota 4  |texto....| img4.jpg  |
| 5  | 2        | Titulo de la nota 5  |texto....| img5.jpg  |
| 6  | 2        | Titulo de la nota 6  |texto....| img6.jpg  |
+----+----------+----------------------+---------+-----------+



Y quiero imprimir un listado: (Categorias con nro de articulos en cada una)

Código :

+-------------+------------+
| Categoria   | cantidad   |
+-------------+------------+
| academicas  | 2          |
| eventos     | 4          |
+-------------+------------+



Y solo obtengo...

Código :

+-------------+------------+
| Categoria   | cantidad   |
+-------------+------------+
| 1           | 2          |
| 2           | 4          |
+-------------+------------+




Este es el código que utilizo:

Código PHP :

include "conexion.php";
$resultado = @mysql_query("SELECT categoria, count(categoria) AS cant FROM notas GROUP BY categoria limit 0,25");
if (!$resultado) {
echo ("Error1:" . mysql_error() . "");
exit();
}
$numero = mysql_num_rows($resultado);
while ($fila = mysql_fetch_array($resultado)) {
?>
<li><a href="listado.php?cat=<?= $fila['categoria']; ?>"><?= $fila['categoria']; ?></a>(<?= $fila['cant']; ?>)</li>
<?
}
?>


Se que hay que hacer una subconsulta utilizando INNER JOIN o algo asi pero no logro darme maña.


Les agradezco desde ya si alguien me orienta por donde ir....


Saludos y buen año amigos....

Por silvino2006

3 de clabLevel



 

Cordoba, argentina

firefox
Citar            
MensajeEscrito el 22 Ene 2012 08:01 pm
No, no hace falta usar INNER JOIN, basta con implicar a la tabla categorias y un WHERE para unirlas:

Código MySQL :

SELECT categorias.categoria, count(notas.categoria) AS cant FROM notas, categorias WHERE categorias.cat_id=notas.categoria GROUP BY notas.categoria

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.