Código PHP:
<?php
if ($_GET['cat']) { // si viene con la variable cat de categoria, mostramos los resultados de las descargas con esa categoria
echo '+ Categoria> '.$_GET['cat'].'';
$numdesc = mysql_query("SELECT * FROM `descargas` WHERE categoria='".$_GET['cat']."' ORDER BY `id` DESC LIMIT 0, 30");
$desc = mysql_num_rows($numdesc); // esto es para ver el numero total de descargas añadidas
echo '<br /> Total descargas añadidas '.$desc.'';
$query = mysql_query('SELECT des.id,des.nombre,des.descripcion,des.autor,des.link,des.tamaño,des.categoria,des.contador,cat.idcat,cat.nombrecat'
. ' FROM descargas AS des'
. ' LEFT JOIN desc_categorias AS cat ON(des.categoria=cat.idcat)'
. ' ORDER by des.id DESC LIMIT 0, 10');
while($row = mysql_fetch_assoc($query)) // aqui hacemos ya la llamada a la base de datos
{
// variables
$id = $row['id'];
$categoria = $row['categoria'];
$link = "index.php?op=descargas&id=$id"; // asignamos una variable con un link del perfil de la descarga
$linkdesc = "index.php?op=mirror&id=$id"; // asignamos una variable con un link de la descarga
echo '<br/> + <a href='.$link.'>'.$row[nombre].'</a> <a href='.$linkdesc.'>descargatelo</a> '.$row['nombrecat'].''; // mostramos las descargas que hay
}
}
if (empty($_GET['cat'])) { // si la variable cat esta vacia, osea que no esta marcada, mostramos lo demas
if(!isset($_GET['id'])) // comprobamos si viene con id, si no viene mostramos las categorias
{
echo '+ Seccion Descargas > Categorias ';
$query = mysql_query("SELECT * FROM `desc_categorias` LIMIT 0, 30");
while($row=mysql_fetch_array($query)) // aqui hacemos ya la llamada a la base de datos para mostrar las categorias
{
$categoria = $row['idcat'];
$link = "index.php?op=descargas&cat=$categoria"; // asignamos una variable con un link hacia la categoria
echo '<br /><a href='.$link.'>'.$row[nombrecat].'</a> ';
}
}else{
// verificamos de que la id existe
$query2=mysql_query("SELECT * FROM descargas WHERE id='".$_GET['id']."' ");
if($datos=mysql_fetch_array($query2) )
{
// ya esta todo comprobado, mostramos los datos
echo '<p>Info de Descarga '.$datos["nombre"].'';
$link = "index.php?op=mirror&id=$id";
echo '<br/> ';
echo '<br/>Nombre - '.$datos["nombre"].'
<br/> Descripcion - '.$datos["descripcion"].'
<br/> Tamaño - '.$datos["tamaño"].'
<br/> Puesto por : - '.$datos["autor"].'
<br/> Enlace - <a href="'.$link.'">'.$datos["nombre"].' </a>
<br/> Categoria : - '.$datos["categoria"].'
<br/> Veces Descargado: '.$datos["contador"].'
<br/>';
}else{
echo 'La descarga seleccionada no existe';
}
}
}
?>
Esta es son mis tablas
#
# Estructura de tabla para tabla `desc_categorias`
#
CREATE TABLE desc_categorias (
idcat int(10) NOT NULL auto_increment,
nombrecat varchar(40) NOT NULL default '',
PRIMARY KEY (idcat)
) TYPE=MyISAM;
#
# Volcar la base de datos para la tabla `desc_categorias`
#
INSERT INTO desc_categorias VALUES (1, 'Microsoft');
INSERT INTO desc_categorias VALUES (2, 'Linux');
# --------------------------------------------------------
#
# Estructura de tabla para tabla `descargas`
#
CREATE TABLE descargas (
id int(11) NOT NULL auto_increment,
nombre text NOT NULL,
descripcion longtext NOT NULL,
autor text NOT NULL,
link text NOT NULL,
tamaño varchar(30) NOT NULL default '',
categoria text NOT NULL,
contador text NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
#
# Volcar la base de datos para la tabla `descargas`
#
INSERT INTO descargas VALUES (1, 'Msn 2.0', 'Crack', 'Desconocido', 'http://www.microsoft.com', '40 kb', '2', '8');
INSERT INTO descargas VALUES (2, 'Condorux', 'Basado en Debian por programadores peruanos.\r\nKnoopix', 'Apesol', 'http://www.apesol.com', '200 mb.', '2', '1');
La idea es que me muestre el software por categoria, que estoy haciendo mal :S, ya que cuando entro a http://localhost/blog/index.php?op=descargas me aparece 2 categorias, al entrar a cada una de ellas, me muestra todo sin distinguir la categoria de cada una :S