Extraer datos mysql donde coinciden

suaveSHOW

No se si el titulo explica perfectamente mi situacion.
El caso es que tengo una BD con dos tablas, grupos y usuarios.
En grupos hay dos columnas: Nombre de grupo y userID, en esta ultima guarda las ids de los usuarios que lo componen.
En usuarios entre otras estan: Nickname y userID.

Y lo que quiero es extraer el nick de la columna usuarios dunse su userID es igual a las de la columna grupos .
Realize lo siguiente, con su conexion mysql previamente claro.

spoiler

Y el problema es que solo me muestra el usuario cuya ID es "1"

Gracias de antemano.

r2d2rigo

INNER JOIN? Que manera de complicarse la vida :D

$componentes=mysql_query("SELECT u.nickname,u.userID
FROM usuarios u, grupos g
WHERE u.userID = g.userID AND g.nombreGrupo='".$tunombregrupo."'
ORDER BY usuarios.userID");

Aunque el esquema de la BD lo has hecho un poco... raruno. Si un usuario pertenece a un solo grupo, entonces deja las tablas tal que asi:

GRUPOS:
|  groupID   |  groupName   |
USUARIOS:
|  userID     |  userName     |  groupID  |

Y si no, pues asi:

GRUPOS:
|  groupID   | groupName   |
USUARIOS:
|  userID     |  userName     |
PERTENECE:
|  userID     |  groupID   |
ArcheR

Justo lo que dice #2. Para empezar, la estructura de la bd me parece incorrecta. Es el ID del grupo el que debe ir en la tabla de usuarios. Aparte ya tendrías que mirar si es una relación muchos a muchos (un usuario puede pertenecer a muchos grupos y un grupo puede tener muchos usuarios), en cuyo caso tendrías que crear una tercera tabla, o si es una relación uno a muchos (un grupo puede tener muchos usuarios pero un usuario sólo puede pertenecer a un grupo).

JuAn4k4

Esto es por no enseñar diseño de bases de datos.

Lo que tienes tu creo que son dos tablas separadas para una misma cosa (usuario) lo cual esta mal, porque si cambias el nombre de un grupo, tienes que cambiarlo en todos los grupos que tengan el mismo nombre que "intentan referirse" al mismo grupo en realidad.

En una BD se tienen "Entidades" ( Grupo y Usuario ) y relaciones entre entidades.
Estas relaciones tienen cardinalidad 1:N ,M:N ,1:1, etc..

1:N seria por ejemplo, si un usuario solo pudiera pertenecer a un grupo, y en un grupo pueda haber varios usuarios.

M:N si un usuario puede estar en varios grupos, y en un grupo puede haber varios usuarios.

1:1 si los grupos fueran de una sola persona y no puede tener mas de un grupo una misma persona.

#2 Te ha dado la solucion

Dod-Evers

#4 tu lo diste con velilla?

suaveSHOW

A ver, la BD no la hice yo, es con el cms webspell, que una persona me pidio mostrar los miembros en un determinado sitio, yo desde luego no la habría organizado asi.

Adapté lo que me dijiste #2

Codigo

Y me muestra esto:

r2d2rigo

Haz un echo de la string resultado de la concatenacion y un var_dump de lo que te va encontrando el mysql_fetch_array, por algun lado te tiene que fallar :P

JuAn4k4

Seguro que hay algo en la tabla grupos ?

Igual la consulta esa, precisamente no devuelve nada porque no hay usuarios con grupo.

Usuarios habituales

  • JuAn4k4
  • r2d2rigo
  • suaveSHOW
  • Dod-Evers
  • ArcheR