Foros del Web » Programando para Internet » PHP »

problemas con inner join

Estas en el tema de problemas con inner join en el foro de PHP en Foros del Web. Hola que tal, estoy haciendo una consulta con mysql pero al tenerla que hacer mar compleja me tope con un problema que resulta que no ...
  #1 (permalink)  
Antiguo 11/05/2012, 20:33
 
Fecha de Ingreso: agosto-2009
Mensajes: 292
Antigüedad: 14 años, 8 meses
Puntos: 5
problemas con inner join

Hola que tal, estoy haciendo una consulta con mysql pero al tenerla que hacer mar compleja me tope con un problema que resulta que no me muestra ningún error pero tampoco me imprime nada

Aquí el código:

Código PHP:
Ver original
  1. $sql1 = "SELECT * FROM REGISTER_USERS WHERE USERNAME='$username'";
  2.         $result1 = mysql_query($sql1);
  3.        
  4.         $fila1 = mysql_fetch_assoc($result1);
  5.        
  6.         $sql = "SELECT * FROM REGISTER_USERS r INNER JOIN AVATARS a ON r.IUID = a.IUID WHERE r.IUID = '".$fila1['IUID']."'";
  7.         $result = mysql_query($sql);
  8.        
  9.         while($fila = mysql_fetch_assoc($resultado)) {
  10.             $_SESSION['login'] = true;
  11.             $_SESSION['avatar'] = $fila['IMAGE'];
  12.             $_SESSION['username'] = $fila['USERNAME'];
  13.             $_SESSION['upload'] = $fila['UPLOADS'];
  14.         }

Alguien sabe donde esta el problema?

Saludos y gracias de antemano
  #2 (permalink)  
Antiguo 11/05/2012, 22:20
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: problemas con inner join

prueba esto
Código PHP:
Ver original
  1. $sql1 = "SELECT * FROM REGISTER_USERS WHERE USERNAME='$username'";
  2.         $result1 = mysql_query($sql1) or die(mysql_error());
  3.        
  4.         $fila1 = mysql_fetch_assoc($result1);
  5.        
  6.         $sql = "SELECT * FROM REGISTER_USERS r INNER JOIN AVATARS a ON r.IUID = a.IUID WHERE r.IUID = '".$fila1['IUID']."'";
  7.         $result = mysql_query($sql) or die(mysql_error());
  8.        
  9.         while($fila = mysql_fetch_assoc($resultado)) {
  10.             $_SESSION['login'] = true;
  11.             $_SESSION['avatar'] = $fila['IMAGE'];
  12.             $_SESSION['username'] = $fila['USERNAME'];
  13.             $_SESSION['upload'] = $fila['UPLOADS'];
  14.         }
  #3 (permalink)  
Antiguo 12/05/2012, 01:02
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: problemas con inner join

El problema es que defines $result, y sigues $resultado en el while.

Tal y como lo planteas, no puedes tener 2 usernames iguales.
En caso de que esa premisa sea cierta, no seria lo mismo solucionarlo con un solo select?


Código PHP:
       $sql "SELECT * FROM REGISTER_USERS r INNER JOIN AVATARS a ON r.IUID = a.IUID WHERE r.USERNAME='$username'";
        
$resultado mysql_query($sql) or die(mysql_error());
        
        while(
$fila mysql_fetch_assoc($resultado)) {
            
$_SESSION['login'] = true;
            
$_SESSION['avatar'] = $fila['IMAGE'];
            
$_SESSION['username'] = $fila['USERNAME'];
            
$_SESSION['upload'] = $fila['UPLOADS'];
        } 
saludos.
  #4 (permalink)  
Antiguo 16/05/2012, 12:58
 
Fecha de Ingreso: agosto-2009
Mensajes: 292
Antigüedad: 14 años, 8 meses
Puntos: 5
Respuesta: problemas con inner join

Cita:
Iniciado por oscartt67 Ver Mensaje
El problema es que defines $result, y sigues $resultado en el while.

Tal y como lo planteas, no puedes tener 2 usernames iguales.
En caso de que esa premisa sea cierta, no seria lo mismo solucionarlo con un solo select?


Código PHP:
       $sql "SELECT * FROM REGISTER_USERS r INNER JOIN AVATARS a ON r.IUID = a.IUID WHERE r.USERNAME='$username'";
        
$resultado mysql_query($sql) or die(mysql_error());
        
        while(
$fila mysql_fetch_assoc($resultado)) {
            
$_SESSION['login'] = true;
            
$_SESSION['avatar'] = $fila['IMAGE'];
            
$_SESSION['username'] = $fila['USERNAME'];
            
$_SESSION['upload'] = $fila['UPLOADS'];
        } 
saludos.
Hola que tal, muchas gracias en ambas respuestas de tu respuesta tenias razón, muchas gracias y he optado por utilizara la solución que me diste muchas gracias.

Saludos!

Etiquetas: join, mysql, sql
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:40.