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

¿Se puede acceder a un campo de un registro relacionado?

Estas en el tema de ¿Se puede acceder a un campo de un registro relacionado? en el foro de Mysql en Foros del Web. Pues lo que dice la pregunta, no se explicarme mejor en menos palabras... Supongamos que tengo una tabla que tiene usuarioId usuarioNombre usuarioLocalizacion otra tiene ...
  #1 (permalink)  
Antiguo 17/05/2010, 15:50
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 14 años, 6 meses
Puntos: 66
Pregunta ¿Se puede acceder a un campo de un registro relacionado?

Pues lo que dice la pregunta, no se explicarme mejor en menos palabras...

Supongamos que tengo una tabla que tiene

usuarioId
usuarioNombre
usuarioLocalizacion

otra tiene

comentarioId
comentarioUsuario
comentarioTexto

hago una consulta como esta

select * from comentario

Lo que voy a hacer es un invento muy grande, pero ¿existe algo similar a esto?acceder a otros registros directamente gracias a las vinculos o algo por el estilo... nose...

Código PHP:
Ver original
  1. $instruccion = "select * from comentario";
  2. $consulta = mysql_query ($instruccion, $conexion);
  3. $resultado = mysql_fetch_array ($consulta);
  4. print("
  5. ".$resultado['comentarioTexto']."<br/>
  6. ".$resultado['comentarioUsuario.usuarioLocalizacion']."<br/>
  7. ");
  #2 (permalink)  
Antiguo 18/05/2010, 02:09
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: ¿Se puede acceder a un campo de un registro relacionado?

No vas a inventar nada nuevo de hecho eso es la esencia de las bases de datos relacionales... lo que no estoy seguro es si los campos que nos das nos van a servir:

Supongamos que "comentarioUsuario" contiene el identificador del usuario que ha hecho el comentario, y que se corresponde al contenido del campo "usuarioId" de la otra tabla...


Luego si hacemos

Código MySQL:
Ver original
  1. SELECT u.usuarioId,
  2. u.usuarioNombre,
  3. u.usuarioLocalizacion,
  4. c.comentarioId,
  5. c.comentarioUsuario,
  6. c.comentarioTexto
  7. FROM usuarios u INNER JOIN comentarios c
  8. ON u.usuarioId=c.comentarioUsuario;

Con esto obtendremos un registro con los campos de las dos tablas... en otras palabras a cada comentario les correspondera su usuario o a la inversa... (lee sobre las distintas opciones de JOIN ...)

A partir de aquí no tienes que inventar nada:


Código PHP:
Ver original
  1. $instruccion = "SELECT u.usuarioId,".
  2.                        "u.usuarioNombre,".
  3.                        "u.usuarioLocalizacion,".
  4.                        "c.comentarioId,".
  5.                        "c.comentarioUsuario,".
  6.                        "c.comentarioTexto ".
  7.                        "FROM usuarios u INNER JOIN comentarios c ".
  8.                        "ON u.usuarioId=c.comentarioUsuario";
  9. $consulta = mysql_query ($instruccion, $conexion);
  10. $resultado = mysql_fetch_array ($consulta);
  11. echo $resultado['comentarioTexto']."<br/>".
  12.          $resultado['usuarioNombre']." ".
  13.          $resultado['usuarioLocalizacion']."<br/>";

Quim

Última edición por quimfv; 18/05/2010 a las 02:23
  #3 (permalink)  
Antiguo 19/05/2010, 17:58
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 14 años, 6 meses
Puntos: 66
Respuesta: ¿Se puede acceder a un campo de un registro relacionado?

@quimfv no, si cuando decía invento a lo que me refería era a mi código, lo otro suponía que se debía poder hacer, cuando aprendí esto de las db con acces recuerdo que lo hacíamos y por eso suponía que si acces lo hacia mysql no seria menos, lo que no sabia era como se hacia realmente, voy a pegarle un vistacito a tu respuesta

muchisimas gracias ;)

-----edición-----

funcionó perfectamente, por mi parte se podría cerrar ya la discusión.

muchísimas gracias de nuevo

Última edición por juanito1712; 20/05/2010 a las 07:49

Etiquetas: acceder, registro, campos
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 13:44.