Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/09/2004, 17:51
Avatar de Gerald
Gerald
 
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
Problemas con LEFT Join

Tengo el siguiente codigo llamado descargas.php

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';
}

}
?>
El problema es que no me distingue las categorias.

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
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol