Página 2 de 3

Re: Asociar con base de datos

Publicado: 23 Ene 2013, 00:23
por Daniel Muñoz
Con este hago el llamado a la base de datos

Código: Seleccionar todo

<?php 
$bd = mysql_connect('localhost', 'root', 'daniel');
if (!$bd) {
	die('No pudo conectarse: ' .mysql_error());
}
$dbs = mysql_select_db('stats_full', $bd);
if (!$dbs) {
	die(' No pudo conectarse: ' .mysql_error());
}
$sql = "SELECT * FROM stats_full ORDER BY p_kill DESC LIMIT 30";
$cdb = mysql_query($sql);
if (!$cdb){
	die('No se realizo consulta: ' .mysql_error());
}
while($base=mysql_fetch_array($cdb, MYSQL_ASSOC)){
	$players[]=$base;
}

?>
El código con que muestro el nick de los usuarios es este.

Código: Seleccionar todo

<?php print $player["nick"]?>
Para el steam id este

Código: Seleccionar todo

<?php print $player["idsteam"]?>

El nombre de la tabla donde se almacena los STEAM id es (en la misma base de dato donde se guardan los NICK y los demas datos

Código: Seleccionar todo

authid
Y el nombre del campo personalizado es authid

Re: Asociar con base de datos

Publicado: 23 Ene 2013, 00:36
por Alorse
Y el nombre exacto del campo personalizado?
Mejor deja todo el archivo stats.php en un adjunto.

Re: Asociar con base de datos

Publicado: 23 Ene 2013, 01:12
por Daniel Muñoz
Okay aca te dejo el archivo .

Re: Asociar con base de datos

Publicado: 23 Ene 2013, 02:14
por Alorse
mmm pero... en ese archivo no aparecen $player["idsteam"] ni $player["nick"] por ningún lado, me mandaste el que no era?
En fin... cambia esto:

Código: Seleccionar todo

<?php $i=0;foreach($players as $player){$i++;?>
Por esto:

Código: Seleccionar todo

    <?php $i = 0;
        foreach ($players as $player) {
            $i++;
            $nombre_campo = "authid";
            $steam_id = $player["idsteam"];
            $sql = "SELECT user_id 
                    FROM " . PROFILE_FIELDS_DATA_TABLE . "
                    WHERE  pf_" . $nombre_campo . " = " . $steam_id;
            $result = $db->sql_query_limit($sql, 1);
            $row = $db->sql_fetchrow($result);
            $db->sql_freeresult($result);

            $user_id_phpbb = $row['user_id'];
        ?>
Y luego para crear el link:

Código: Seleccionar todo

    <td align="left" valign="top" id="margen"><a href="/memberlist.php?mode=viewprofile&u=$user_id_phpbb"><?php print $player["nick"]?></a></td>
Supongo que llamas ese archivo con un include, así que no deberia ser problema para que cargue la base de datos de phpBB.

Re: Asociar con base de datos

Publicado: 23 Ene 2013, 04:29
por Daniel Muñoz
Okay listo, al realizar este cambio me arroja el siguiente error.

Código: Seleccionar todo

Fatal error: Call to a member function sql_query_limit() on a non-object in /home/111/public_html/stats.php on line 74
La linea 74 es la siguiente.

Código: Seleccionar todo

            $result = $db->sql_query_limit($sql, 1);

Re: Asociar con base de datos

Publicado: 23 Ene 2013, 06:39
por Alorse
mmm intenta esto, después de:

Código: Seleccionar todo

steam_id = $player["idsteam"];
Agrega:

Código: Seleccionar todo

global $db;
Así seguro lo solucione.

Re: Asociar con base de datos

Publicado: 23 Ene 2013, 07:45
por Daniel Muñoz
Luego de agregar eso que indicas da mas errores.

Código: Seleccionar todo

global $db;
Imagen
Imagen

Re: Asociar con base de datos

Publicado: 23 Ene 2013, 16:25
por Alorse
Las imágenes no cargan.

Re: Asociar con base de datos

Publicado: 23 Ene 2013, 20:04
por Daniel Muñoz
Hay te dejo las mismas imagenes adjuntas.

Re: Asociar con base de datos  Tema Solucionado

Publicado: 23 Ene 2013, 20:09
por Alorse
Hay un error en la consulta, el steam_id debe estar entre comillas.

Código: Seleccionar todo

    <?php $i = 0;
        foreach ($players as $player) {
            $i++;
            $nombre_campo = "authid";
            $steam_id = $player["idsteam"];
            $sql = "SELECT user_id 
                    FROM " . PROFILE_FIELDS_DATA_TABLE . "
                    WHERE  pf_" . $nombre_campo . " = '$steam_id'";
            $result = $db->sql_query_limit($sql, 1);
            $row = $db->sql_fetchrow($result);
            $db->sql_freeresult($result);

            $user_id_phpbb = $row['user_id'];
        ?>

Re: Asociar con base de datos

Publicado: 23 Ene 2013, 20:41
por Daniel Muñoz
Ya se soluciono el problema. Pero cuando trato de ver los perfiles. Me lleva a esta dirección

Código: Seleccionar todo

/memberlist.php?mode=viewprofile&u=$phpbb_user_id
Y el usuario no existe.

/ Ya limpie el cache
/ Estoy probando con mi cuenta que tiene todos los datos completos. y da ese error

Re: Asociar con base de datos

Publicado: 23 Ene 2013, 21:07
por Alorse
Bueno, pues... porque una vez más tienes algo mal, o solo te indico como son las cosas pero tu debes acomodarlas a tu código, no puedes usar variables php en html, debes concatenar, el enlace debe ser así:

Código: Seleccionar todo

    <td align="left" valign="top" id="margen"><a href="/memberlist.php?mode=viewprofile&u=<?php print $user_id_phpbb; ?>"><?php print $player["nick"]?></a></td>

Re: Asociar con base de datos

Publicado: 23 Ene 2013, 21:11
por Daniel Muñoz
Ya tema resuelto, no te molestes amigo.

Prueba y error, así se aprende. Muchas gracias por tu tiempo y dedicación.

Re: Asociar con base de datos

Publicado: 23 Ene 2013, 21:19
por Alorse
Con gusto, recuerda hacer una validación, si el steam_id existe, que muestre el enlace, sino, que solo muestre el nombre de usuario, así te evitas inconvenientes.

Re: Asociar con base de datos

Publicado: 23 Ene 2013, 21:34
por Daniel Muñoz
Y como hago dicha validación?