> Faqs > Problemas al listar el contenido de una BBDD

Problemas al listar el contenido de una BBDD

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:

<span class="codigo"> $result = mysql_query($datos) or die (mysql_error());

while($row = mysql_fetch_array($result)){
echo $row['nombre']."<br />";
} </span>

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?

Gracias por adelantado.

Responder la pregunta
Editar Hacer otra preguntaPreguntar

Respuestas

Hola 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 Ojalá te sirva

Cesar Martinez