Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Ambolia en 3 Noviembre 2013, 19:12 pm



Título: consulta a base My sql
Publicado por: Ambolia en 3 Noviembre 2013, 19:12 pm
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


Título: Re: consulta a base My sql
Publicado por: Saberuneko en 4 Noviembre 2013, 17:29 pm
¿Podrías mostrarnos las tablas de la base de datos?
(Si tienes acceso a ellas por consola, utiliza el comando "desc").

Código:
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
  1. <?php
  2.  
  3. $con =mysql_connect("mysql.hostinger.es", "*********", "***********");
  4. mysql_select_db("*************", $con);
  5. // Cantidad de post a mostrar y prefijo de las tablas
  6. $ultimos = 10;
  7. $prefijo = "phpbb_";
  8.  
  9. // Consultas a la base
  10. $result_mensaje=mysql_query("select * from $prefijo"."posts order by post_id desc limit $ultimos",$con);
  11. while($mostrar_m = mysql_fetch_array($result_mensaje))
  12. {
  13. $post=$mostrar_m["post_id"];
  14. $forum_id=$mostrar_m["forum_id"];
  15. $result_foro=mysql_query("select * from $prefijo"."forums where forum_id like $forum_id",$con);
  16. $mostrar_f=mysql_fetch_array($result_foro);
  17. $forum_name = $mostrar_f["forum_name"];
  18. mysql_free_result($result_foro);
  19. ?>
  20.  
  21. <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>
  22.  
  23.  
  24. <?
  25. }
  26. // Cerramos conexión
  27. mysql_free_result($result_mensaje);
  28. mysql_close($con);
  29. ?>

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



Título: Re: consulta a base My sql
Publicado por: Ambolia en 22 Noviembre 2013, 17:05 pm
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


Título: Re: consulta a base My sql
Publicado por: Saberuneko en 22 Noviembre 2013, 17:21 pm
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
  1. 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
  1. $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
  1. $poster=$mostrar_m["poster_id"];

Utilizarlo para realizar la consulta de arriba...

Código
  1. $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
  1. $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.