consulta a base My sql

Iniciado por Ambolia, 3 Noviembre 2013, 19:12 PM

0 Miembros y 1 Visitante están viendo este tema.

Ambolia

hola,tengo un php para que consulte nuevos post en phpBB3 y que los ponga en la pagina principal.

------------------------------
Post.php
------------------------------

<?php

$con =mysql_connect("mysql.hostinger.es", "*********", "***********");
mysql_select_db("*************", $con);
// Cantidad de post a mostrar y prefijo de las tablas
$ultimos = 10;
$prefijo = "phpbb_";

// Consultas a la base
$result_mensaje=mysql_query("select * from $prefijo"."posts order by post_id desc limit $ultimos",$con);
while($mostrar_m = mysql_fetch_array($result_mensaje)) {
$post=$mostrar_m["post_id"];
$forum_id=$mostrar_m["forum_id"];
$result_foro=mysql_query("select * from $prefijo"."forums where forum_id like $forum_id",$con);
$mostrar_f=mysql_fetch_array($result_foro);
$forum_name = $mostrar_f["forum_name"];
mysql_free_result($result_foro);
?>
<i><b><?=$forum_name;?></b></i> - </font><font face="verdana" size="1"><a href="http://taxhack.96.lt//Menu/Foro/viewtopic.php?p=<?=$post;?>" target="_blank"><? echo $mostrar_m["post_subject"]; ?></a>


<?
}
// Cerramos conexión
mysql_free_result($result_mensaje);
mysql_close($con);
?>


---------------------------------------------------------
Y quiero poner que debajo me ponga el nombre del usuario que a escrito ese mensaje y no se que poner...

alguien me puede decir....

Se lo agradezco mucho

Saberuneko

¿Podrías mostrarnos las tablas de la base de datos?
(Si tienes acceso a ellas por consola, utiliza el comando "desc").

desc nombre_tabla

(Donde nombre_tabla sería el nombre de la tabla a mostrar).

Ya que sin la estructura de datos, no podemos saber cuál puede ser el nombre de la columna que contiene el nombre de usuario (si lo hay, que debería).

Nota: Intenta utilizar las etiquetas de código del foro.
Te dejo esto un poco mejor colocado:

Código (php) [Seleccionar]

<?php

$con =mysql_connect("mysql.hostinger.es""*********""***********");
mysql_select_db("*************"$con);
// Cantidad de post a mostrar y prefijo de las tablas
$ultimos 10;
$prefijo "phpbb_";

// Consultas a la base
$result_mensaje=mysql_query("select * from $prefijo"."posts order by post_id desc limit $ultimos",$con);
while($mostrar_m mysql_fetch_array($result_mensaje))
{
$post=$mostrar_m["post_id"];
$forum_id=$mostrar_m["forum_id"];
$result_foro=mysql_query("select * from $prefijo"."forums where forum_id like $forum_id",$con);
$mostrar_f=mysql_fetch_array($result_foro);
$forum_name $mostrar_f["forum_name"];
mysql_free_result($result_foro);
?>


<i><b><?=$forum_name;?></b></i> - </font><font face="verdana" size="1"><a href="http://taxhack.96.lt//Menu/Foro/viewtopic.php?p=<?=$post;?>" target="_blank"><? echo $mostrar_m["post_subject"]; ?></a>


<?
}
// Cerramos conexión
mysql_free_result($result_mensaje);
mysql_close($con);
?>


PS: No he retocado nada, sólo utilizado las etiquetas e indentado el código.


Ambolia

Aqui las tablas:

phpbb_acl_groups

phpbb_acl_options

phpbb_acl_roles

phpbb_acl_roles_data

phpbb_acl_users

phpbb_attachments

phpbb_banlist

phpbb_bbcodes

phpbb_bookmarks

phpbb_bots

phpbb_config

phpbb_confirm

phpbb_disallow

phpbb_drafts

phpbb_extensions

phpbb_extension_groups

phpbb_forums

phpbb_forums_access

phpbb_forums_track

phpbb_forums_watch

phpbb_groups

phpbb_icons

phpbb_lang

phpbb_log

phpbb_login_attempts

phpbb_moderator_cache

phpbb_modules

phpbb_poll_options

phpbb_poll_votes

phpbb_posts

phpbb_privmsgs

phpbb_privmsgs_folder

phpbb_privmsgs_rules

phpbb_privmsgs_to

phpbb_profile_fields

phpbb_profile_fields_data

phpbb_profile_fields_lang

phpbb_profile_lang

phpbb_ranks

phpbb_reports

phpbb_reports_reasons

phpbb_search_results

phpbb_search_wordlist

phpbb_search_wordmatch

phpbb_sessions

phpbb_sessions_keys

phpbb_sitelist

phpbb_smilies

phpbb_styles

phpbb_styles_imageset

phpbb_styles_imageset_data

phpbb_styles_template

phpbb_styles_template_data

phpbb_styles_theme

phpbb_topics

phpbb_topics_posted

phpbb_topics_track

phpbb_topics_watch

phpbb_users

phpbb_user_group

phpbb_warnings

phpbb_words

phpbb_zebra

Saberuneko

#3
Bien, de estas tablas, deduzco que de las que necesitas sacar los valores sería de phpbb_posts y phpbb_users... posiblemente.

Puede que seas capaz de hacerlo seleccionando el valor "poster_id" de la siguiente:
https://wiki.phpbb.com/Table.phpbb_posts

Que, si no me equivoco, referencia al valor "user_id" de esta otra:
https://wiki.phpbb.com/Table.phpbb_users

Esta tabla de usuarios tiene el valor "username". Que sería el nombre de tu usuario.

Por tanto, la consulta sería:
Código (sql) [Seleccionar]
select username from phpbb_posts p, phpbb_users u where p.poster_id like u.user_id;

Ahora lo que queda, sería buscar la forma de añadirlo después de leer la tabla:

(En la línea 10, lees la tabla phpbb_posts)
Código (php) [Seleccionar]
$result_mensaje=mysql_query("select * from $prefijo"."posts order by post_id desc limit $ultimos",$con);

Por tanto, recoger el valor correspondiente, posiblemente con:
Código (php) [Seleccionar]
$poster=$mostrar_m["poster_id"];

Utilizarlo para realizar la consulta de arriba...

Código (php) [Seleccionar]
$username=mysql_query("select username from $prefijo"."users where $poster like user_id);

Y luego recogerlo y mostrarlo, como los demás valores.

Código (php) [Seleccionar]
$mostrar_m["username"]=$username;

Con esto, teóricamente, meterías el nombre de tu usuario en el array "$mostrar_m[]" que deduzco que es el que lleva todo el contenido del mensaje a mostrar.