Hola Maria Isabel al parecer si tienes una relación entre dos tablas y la clave primaria del uno baja a la otra tabla al hacer la relación deberías compararlas para que te saque de las 2 uno solo. Para eso puedes usar uniones con alias ejemplo si en la relación tu clave es codigo_usuario deberia generar un alias a este de la siguiente forma A.codigo_usuario (esta seria de la tabla A) B.codigo_usuario (tabla B) de esta forma comparas los codigos para que te devuelva los existentes y no todos. La comparación seria WHERE B.codigo_usuario= A.codigo_usuario
Problema al listar contenido de una Base de Datos
Muy buenas a ver si explico claramente mi problema: Estoy intentando programar un juego en PHP y MySQL, para ello tengo (entre otras que no viene al caso) dos bases de datos una con los datos generales del usuario y una segunda con todos los datos del personaje.
Estoy tratando de hacer la interface donde el usuario ve su personaje y las cosas que tiene por lo que vuelco todos sus datos con esta sentencia:
$datos = "SELECT usuario, nombre, idcabeza ,idpecho,idmanos ,idpanta ,idbotas ,arma1 ,arma2 ,municion ,nivel ,exp ,carrerastot ,carganadas,carperdidas ,fuerza ,agilidad ,constitucion ,carisma ,dinero, vida FROM personajes,maaking_users WHERE personajes.usuario = '$userid' ";
Despues de recoger todos los datos paso este codigo para que me lo guarde en un array y asi poder irlo imprimiendolo en pantalla como a mi me vaya gustando:
$result = mysql_query($datos) or die (mysql_error());
while($row = mysql_fetch_array($result)){ echo $row['nombre']."
"; }
Has ahí todo bien recoge el dato del nombre y me lo printa pero mi problema es que lo printa tantas veces como usuarios existen en la base de datos original, en este caso tengo 4 usuarios de pruebas asi que me sale 4 veces el nombre del personaje.
¿Alguien me puede dar alguna idea de como solucionar esto?