Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

problema con inner join

Estas en el tema de problema con inner join en el foro de Mysql en Foros del Web. Hola, tengo dos tablas, usuarios y ficha Necesito hacer una consulta que como resultado me de, un listado de todos los campos de la tabla ...
  #1 (permalink)  
Antiguo 18/01/2011, 05:32
 
Fecha de Ingreso: diciembre-2007
Mensajes: 140
Antigüedad: 16 años, 4 meses
Puntos: 0
problema con inner join

Hola,
tengo dos tablas, usuarios y ficha

Necesito hacer una consulta que como resultado me de, un listado de todos los campos de la tabla ficha, de una determinada oficina.

En una variable tengo el identificador de oficina que necesito --> $oficinaUsuario

en la tabla usuarios tengo un campo con la oficina --> oficina_id, y otro con el identificador de usuario --> id_usuario

en la tabla ficha tengo un campo con el identificador de usuario--> usuario_id

La consulta que hago es la siguiente:

$consultaInforme="SELECT * FROM ficha INNER JOIN usuarios ON (ficha.usuario_id = usuarios.id_usuarios) AND (usuarios.oficina_id = $oficinaUsuario)";
  #2 (permalink)  
Antiguo 18/01/2011, 06:24
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: problema con inner join

Código MySQL:
Ver original
  1. FROM ficha F INNER JOIN usuarios U ON F.usuario_id = U.id_usuarios
  2. WHERE U.oficina_id = $oficinaUsuario;
Es una forma más ortodoxa.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 18/01/2011, 09:34
 
Fecha de Ingreso: diciembre-2007
Mensajes: 140
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: problema con inner join

Muchas gracias, de esta forma puedo ir aprendiendo buenas maneras.

En realidad, el error no me lo estaba dando en la sql,sino en la forma de mostrar los datos. Sabeis como puedo acceder a los datos?
con un while o un foreach?

Código PHP:
Ver original
  1. $consultaInforme="SELECT * FROM ficha F INNER JOIN usuarios U ON F.usuario_id = U.id_usuarios WHERE U.oficina_id = $oficinaUsuario;";
  2.                    
  3. $resultadoInforme=mysql_query($consultaInforme);
  4. while($fila_Informe = mysql_fetch_array($resultadoInforme)){
  5.     echo $fila_Informe["dia"];
  6. }
el errorque me da:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
cual es la mejor manera?

un saludo
  #4 (permalink)  
Antiguo 18/01/2011, 09:45
 
Fecha de Ingreso: diciembre-2007
Mensajes: 140
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: problema con inner join

Lo he corregido de esta forma:

Código PHP:
Ver original
  1. $consultaInforme="SELECT * FROM ficha F INNER JOIN usuarios U ON F.usuario_id = U.id_usuario WHERE U.oficina_id = $oficinaUsuario;";                    $resultadoInforme=mysql_query($consultaInforme);                if($resultadoInforme){
  2.         $lineaInforme=mysql_num_rows($resultadoInforme);
  3.         if($lineaInforme){                                     while($lineaInforme=mysql_fetch_array($resultadoInforme)){?>             <tr>                                            <td><?php echo $lineaInforme["dia"];?></td>
  4.                                      </tr>
  5. <?php }
  6.     }else{                                      echo "No hay respuesta a esta consulta";
  7.                                         }
  8. }else{
  9.                                     echo mysql_error();
  10. }

No se sie es la mejor manera pero funciona, de todas formas gracias por la ayuda

Etiquetas: join
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 00:14.