Foros del Web » Bases de Datos » Mysql »

Duda como hacer consulta

Estas en el tema de Duda como hacer consulta en el foro de Mysql en Foros del Web. Estoy haciendo una aplicacion web para la gestion de tareas. Tengo una BD con 4 tablas (en negrita, claves primarias): - comentario ( id_comentario ,id_tarea,id_usuario,mensaje,fecha) ...
  #1 (permalink)  
Antiguo 02/02/2012, 07:35
Avatar de lenders  
Fecha de Ingreso: diciembre-2011
Mensajes: 55
Duda como hacer consulta

Estoy haciendo una aplicacion web para la gestion de tareas.

Tengo una BD con 4 tablas (en negrita, claves primarias):

- comentario (id_comentario,id_tarea,id_usuario,mensaje,fecha)
- tarea (id_tarea,fecha_alta,fecha_entrega,finalizada,aceptada,titu lo,contenido)
- usuario (id_usuario,nombre,clave,admin,fecha_alta,email)
- usuario_tarea (id_usuario,id_tarea)

Con esta consulta, saco el id_usuario de los usuarios que estan asignados a una tarea:

Código PHP:
// RECOJEMOS LOS DATOS DE 'USUARIO_TAREA'
    
$cons_usuario_tarea mysql_query ("SELECT * FROM usuario_tarea WHERE id_tarea = '$id_tarea'") or die ("Error al recojer resultados de 'usuario_tarea'");
    
$nFilas mysql_num_rows($cons_usuario_tarea);
    
    for (
$i=0;$i<$nFilas;$i++){
        
$fila mysql_fetch_array($cons_usuario_tarea);
            
$id_tarea $fila['id_tarea'];
            
$id_usuario_de_tarea $fila['id_usuario'];
            
            print(
"
                $id_usuario_de_tarea |
            "
);
    } 
Pero lo que necesito es sacar el NOMBRE del usuario, y le estuve dando vueltas y no se como :/
  #2 (permalink)  
Antiguo 02/02/2012, 08:15
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 1.089
Respuesta: Duda como hacer consulta

Hola lenders:

Al utilizar multiples tablas, la mejor manera de trabajar es con JOIN's (INNER, LEFT y RIGHT). Si tienes dudas en cuanto a cómo trabajan cada uno de ellos puedes preguntarle a Santa Wikipedia:

http://es.wikipedia.org/wiki/Join

Ahora bien, con respecto a tu problema, estás complicando la consulta haciendo un ciclo (además de que este es un foro de SQL y por lo tanto no es correcto incluir código de ningún otro lenguaje que no sea SQL). Para lo que quieres hacer sólo requieres de las tablas usuario y usuario_tarea, prueba con esto:

Código MySQL:
Ver originalCopiar
  1. SELECT u.nombre FROM usuarios u
  2. INNER JOIN usuarios_tareas ut ON u.id_usuario = ut.id_usuario
  3. WHERE ut.id_tarea = aquí_pones_el_id_de_la_tarea

y para la siguiente, si quieres incluir código PHP puedes acudir directamente al foro de este lenguaje:

http://www.forosdelweb.com/f18/

Haz la prueba y nos comentas.

Saludos
Leo.
¿Nuevo en el foro? Regístrate



La zona horaria es GMT -6. Ahora son las 09:30.
SEO by vBSEO 3.3.2