Página 1 de 3

Asociar con base de datos

Publicado: 16 Ene 2013, 10:18
por Daniel Muñoz
URL: http://sin-oficio.com
Versión phpBB: 3.0.11
MODs Instalados: phpBBPortal
Plantilla(s) usada(s): Prosilver / prosilver_se
Servidor: Pago - http://www.hostgator.com/
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No

Buenas noches amigos, bueno tengo una duda. Tengo 2 bases de datos
1- La del foro
2- La del juego
Esta ultima guarda 1 código único por usuario que es su "STEAM ID" por ejemplo ( STEAM_0:1:111111)

La pregunta es, puedo asociar estas bases de datos. Entonces mis usuarios en el foro quedarian plenamente identificados. Les explico

Digamos que entran acá.
http://www.sin-oficio.com/stats.php (estos datos son extraído de la 2 base de datos)
Entonces quieren ver quien es el usuario numero 1 de la tabla, ah hacer clic en el nombre del usuario, lo lleve directo a su perfil.

Re: Asociar con base de datos

Publicado: 17 Ene 2013, 15:47
por Alorse
Y son los mismos usuarios exactamente con los mismos nombres?
Porque si es así, seria muy fácil, solo es hacer una consulta que busque el ID del usuario de phpBB con el nombre de usuario de la otra base de datos y ya luego de tener el id de phpBB puedes hacer un enlace al perfil.

Re: Asociar con base de datos

Publicado: 17 Ene 2013, 20:34
por Daniel Muñoz
No son los mismos nombres, a veces se los cambian segun su animo x.x pero lo unico que jamas cambia es el STEAM ID,

STEAM_0:1:4233946

Este serial no cambia mucho, la idea seria no se, crear un cambio personalizado que no se pueda cambiar nunca y al momento de registrarse que coloquen su steam id y luego hacer lo que tu dices, seria posible?

Re: Asociar con base de datos

Publicado: 17 Ene 2013, 21:20
por Alorse
Si el nombre cambia no se puede hacer lo que dices, y tal steam id que dices de nada sirve ya que no se almacena en ninguna parte de la base de datos de phpBB>
aunque otra idea seria crear un campo personalizado en phpBB y que todos pongan ese steam id, en dicho campo, así ya podríamos asociarlo al user_id de phpBB y crear el enlace al perfil, eso si, todos deben ter dicho campo personalizado, tendría que ser obligatorio.

Re: Asociar con base de datos

Publicado: 18 Ene 2013, 09:00
por Daniel Muñoz
El "Steam_id" lo tengo registrado en otra base de datos, si eso pensaba yo también, crear el campo personalizado que todo deban llenar al registro, que no sea editable por el usuario. Y asociarlo con la otra base de datos para luego hacer en enlace que los lleve al perfil cuando consulten la tabla.

Re: Asociar con base de datos

Publicado: 20 Ene 2013, 19:33
por Daniel Muñoz
Alorse, alguna solución?

Re: Asociar con base de datos

Publicado: 20 Ene 2013, 19:53
por Alorse
Pero si no has preguntado nada :nolose: quedamos que ibas a crear el campo personalizado y no sé si ya lo hiciste y lo llenaste para los usuarios que hay.

Re: Asociar con base de datos

Publicado: 21 Ene 2013, 05:22
por Daniel Muñoz
Si amigo, tienes razon.

Ya el campo esta creado, es alfanumero sin espacio, no editable pero visible.

Cual es el siguiente o los siguientes pasos?

Re: Asociar con base de datos

Publicado: 21 Ene 2013, 18:28
por Alorse
Supongo que tienes este steam_id en alguna variable php en la pagina que nos muestras, luego de eso la consulta que debes hacer, es algo así:

Código: Seleccionar todo

$nombre_campo = "Como le hallas puesto al campo personalizado";
$steam_id = 'Id de la otra base de datos';
$sql = "SELECT user_id 
FROM " . PROFILE_FIELDS_DATA_TABLE . "
WHERE  pf_" . $nombre_campo . " = " . $steam_id; 
Esto retorna en ID de usuario de phpBB, luego de esto ya solo es que crees en link al perfil de la siguiente manera:

Código: Seleccionar todo

memberlist.php?mode=viewprofile&u= $id_resultado
Y listo, ya lo demás como organizar la consulta dentro de un ciclo debes hacerlo tú.

Re: Asociar con base de datos

Publicado: 22 Ene 2013, 20:34
por Daniel Muñoz
Ya va amigo, no te he entendido nada o tal vez tu no me has comprendido bien.

Tengo 2 bases de datos

1- La del foro donde se registran los usuarios
- En esta base de datos cree un campo personalizado donde ellos introducen un "valor único" como lo es el STEAM_ID
Imagen

2- Tengo la otra base de datos que acumula datos de los jugadores entre los que están los "STEAM_ID"

Entonces que quiero hacer?, cuando mi visitantes, jugadores o cualquier persona entren a ver las estadísticas en el foro

http://www.sin-oficio.com/stats.php

y digamos que quieren ver el usuario numero uno en el "Ranking" ( por ejemplo : davide alessio angarita d*a-1d- ) como se ve en la foto.
Imagen
Y hablan clic sobre su nombre los lleve a el perfil de el en el foro, por ejemplo.
Imagen

Hasta aquí todo perfecto, ahora donde esta la linea negra quiero incrustar o agregar una tabla como la que se muestras en las estadísticas (la de arriba) que me diga que el usuario 1 es el dueño de "X" estadisticas.

Re: Asociar con base de datos

Publicado: 22 Ene 2013, 20:49
por Alorse
Eso ultimo de las estadísticas es nuevo y duda totalmente aparte que no pienso ni tratar.
Y lo otro es tal cual como lo he dicho no veo que es lo que no entiendes, debes hacer la consulta que te he puesto, con el nombre del campo personalizado y el STEAM_ID de cada usuario.

Re: Asociar con base de datos

Publicado: 22 Ene 2013, 21:30
por Daniel Muñoz
y como creo el enlace al perfil?

Re: Asociar con base de datos

Publicado: 22 Ene 2013, 21:40
por Alorse
Daniel Muñoz escribió:y como creo el enlace al perfil?

Código: Seleccionar todo

<a href="/memberlist.php?mode=viewprofile&u=$id_resultado">$nombre_usuario</a>

Re: Asociar con base de datos

Publicado: 22 Ene 2013, 23:46
por Daniel Muñoz
En verdad disculpa. Pero no entiendo.

1ero Agregue esto.

Código: Seleccionar todo

$nombre_campo = "authid";
$steam_id = 'authid';
$sql = "SELECT user_id 
FROM " . PROFILE_FIELDS_DATA_TABLE . "
WHERE  pf_" . $nombre_campo . " = " . $steam_id;
Luego donde se muestra en "nick" del usuario en la tabla lo coloque asi

Código: Seleccionar todo

    <td align="left" valign="top" id="margen"><a href="/memberlist.php?mode=viewprofile&u=id_resultado"><?php print $player["nick"]?></a></td>
Me envia a http://www.sin-oficio.com/memberlist.ph ... _resultado

Que estoy haciendo mal?

Re: Asociar con base de datos

Publicado: 23 Ene 2013, 00:11
por Alorse
Mejor por en el script ya sea en un archivo adjunto o el pedazo de código que lista los nombres de los usuarios y los steam_id de los mismos, porque lo que yo te puse arriba es genérico y tu debías adaptarlo, pero no tienes idea.
Así si pones el código te puedo hacer lo que necesitas.

Y dime exactamente cual fue el nombre que le pusiste al campo personalizado que creaste.