Foros del Web » Programando para Internet » PHP »

Problemas con LEFT Join

Estas en el tema de Problemas con LEFT Join en el foro de PHP en Foros del Web. 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' ]. '' ; ...
  #1 (permalink)  
Antiguo 08/09/2004, 17:51
Avatar de 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
  #2 (permalink)  
Antiguo 09/09/2004, 06:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
SI tienes problemas con el SQL de "left join" deberías hacer la pregunta en el foro de "Base de datos" .. cuando tengas eso resuelto (que la consulta SQL implicada te dé el resultado esperado .. ) ahí continuas con la parte "PHP" para extraer esos datos.

Un saludo,
  #3 (permalink)  
Antiguo 09/09/2004, 13:22
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
Muevanlo entonces :D

Entonces muevanlo al foro adecuado disculpen mi chapuzada :S
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
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 10:09.