Foros del Web » Programando para Internet » PHP »

Consulta SQL para una base de datos normalizada

Estas en el tema de Consulta SQL para una base de datos normalizada en el foro de PHP en Foros del Web. Saludos para tod@s!! :) Resulta que normalice una base de datos, de la siguiente manera: Usuarios id - usuario 1 - carlos 2 - Maria ...
  #1 (permalink)  
Antiguo 29/08/2012, 23:30
Avatar de evairdesign  
Fecha de Ingreso: abril-2012
Mensajes: 54
Antigüedad: 12 años
Puntos: 7
Consulta SQL para una base de datos normalizada

Saludos para tod@s!! :)

Resulta que normalice una base de datos, de la siguiente manera:

Usuarios
id - usuario
1 - carlos
2 - Maria

Deportes
id - deportes
1 - Futbol
2 - Basketbol
3 - Handbol

Rel_usuarioDeporte
id_usuarios - id_deportes
1 - 1
1 - 2
2 - 3

Se comprende? bueno, es simple, un usuario puede hacer varios deportes, para eso se seleccione de otra tabla para no tener que repetir registros vanamente.

El problema que tengo, es que no sé como llamar esos datos y asociarlos, mediante alguna consulta SQL, me gustaria que se imprimiera en pantalla
algo asi:

Carlos - Futbol, basketbol
Maria - Handbol

Para de esa manera poder editar, eliminar o agregar nuevos registros de manera simple.

espero su ayuda :)
__________________
Todo debe hacerse lo más simple posible pero no más simple
  #2 (permalink)  
Antiguo 29/08/2012, 23:51
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Consulta SQL para una base de datos normalizada

Podrías leer directamente Rel_usuarioDeporte, ordenado por id de usuario y haciendo uso de JOIN para obtener nombre de usuario y deporte.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 31/08/2012, 03:49
Avatar de cesarin3134  
Fecha de Ingreso: enero-2012
Ubicación: Milan
Mensajes: 97
Antigüedad: 12 años, 3 meses
Puntos: 20
Respuesta: Consulta SQL para una base de datos normalizada

bueno yo hice algo parecido aqui te dejo el codigo debes utilizar INNER JOIN para obtener el valor , y despues le pasas el nombre como parametro.

Código PHP:
Ver original
  1. $sql2 = "SELECT deportistas.nombre FROM deportistas";
  2.  
  3. $query = mysql_query($sql2) or die(mysql_error());
  4.  
  5.    while ( $nombre = mysql_fetch_array($query)) {
  6.      
  7.       $nombreJugador = $nombre['nombre'];
  8.       echo $nombreJugador;
  9.       $sqlDeportes = "SELECT deportes.nombreDeporte
  10.                     FROM deportes
  11.                     INNER JOIN deportistasdeportes
  12.                     ON deportes.idDeporte = deportistasdeportes.idDeporte
  13.                     INNER JOIN deportistas
  14.                     ON deportistas.idDeportista = deportistasdeportes.idDeportista
  15.                     WHERE deportistas.nombre = '$nombreJugador'";
  16.  
  17.       $queryDeportes = mysql_query($sqlDeportes) OR die(mysql_error());
  18.                      
  19.       while ($resultDeporte = mysql_fetch_assoc($queryDeportes)){
  20.  
  21.            $nombreDeporte = $resultDeporte['nombreDeporte'];
  22.  
  23.            echo '-'.$nombreDeporte;
  24.  
  25.       }
  26.       echo '<br/>';//   echo $nombreJugador.'-'.$nombreDeporte;

espero te sirva ;)
__________________
Web Graphic and Front-End Developer C.andavisa
http://www.cesart.it

Etiquetas: registro, sql, tabla, usuarios
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 16:09.