Se connecter / S'enregistrer
Votre question

[phpBB]recuperer des messages

Tags :
  • Php
  • Programmation
Dernière réponse : dans Programmation
24 Octobre 2006 22:25:32

Bonjour,
Dans un forum phpBB :
J'aimerais récuperer de la base de données tous les message du topic "viewtopic.php?t=5" pour pouvoir les utiliser dans une autre page.
J'espere qu'on me comprend.

Autres pages sur : phpbb recuperer messages

24 Octobre 2006 22:44:51

Il y a peut être des spécialistes de phpBB ici, mais je n'en fais pas partie; tu aurais peut être plus de réponses si tu donnais la structure de ta base de données, de tes tables, voire même le code PHP des pages d'affichage des messages...
25 Octobre 2006 12:44:48

pour la base de donnees, la structure est la suivante :
  1. phpbb_auth_access
  2. phpbb_banlist
  3. phpbb_categories
  4. phpbb_config
  5. phpbb_confirm
  6. phpbb_disallow
  7. phpbb_forums
  8. phpbb_forum_prune
  9. phpbb_groups
  10. phpbb_posts
  11. phpbb_posts_text
  12. phpbb_privmsgs
  13. phpbb_privmsgs_text
  14. phpbb_ranks
  15. phpbb_search_results
  16. phpbb_search_wordlist
  17. phpbb_search_wordmatch
  18. phpbb_sessions
  19. phpbb_sessions_keys
  20. phpbb_smilies
  21. phpbb_themes
  22. phpbb_themes_name
  23. phpbb_topics
  24. phpbb_topics_watch
  25. phpbb_users
  26. phpbb_user_group
  27. phpbb_vote_desc
  28. phpbb_vote_results
  29. phpbb_vote_voters
  30. phpbb_words


Je pense que ca doit etre dans phpbb_posts(_text) ou phpbb_topics(_watch).

Et pour la page d'affichage je ne comprend pas trop le php, mais je pense que c'est ca :

  1. //
  2. // Go ahead and pull all data for this topic
  3. //
  4. $sql = "SELECT u.username, u.user_id, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_avatar, u.user_avatar_type, u.user_allowavatar, u.user_allowsmile, p.*, pt.post_text, pt.post_subject, pt.bbcode_uid
  5. FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt
  6. WHERE p.topic_id = $topic_id
  7. $limit_posts_time
  8. AND pt.post_id = p.post_id
  9. AND u.user_id = p.poster_id
  10. ORDER BY p.post_time $post_time_order
  11. LIMIT $start, ".$board_config['posts_per_page'];
  12. if ( !($result = $db->sql_query($sql)) )
  13. {
  14. message_die(GENERAL_ERROR, "Could not obtain post/user information.", '', __LINE__, __FILE__, $sql);
  15. }
  16.  
  17. $postrow = array();
  18. if ($row = $db->sql_fetchrow($result))
  19. {
  20. do
  21. {
  22. $postrow[] = $row;
  23. }
  24. while ($row = $db->sql_fetchrow($result));
  25. $db->sql_freeresult($result);
  26.  
  27. $total_posts = count($postrow);
  28. }
  29. else
  30. {
  31. include($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
  32. sync('topic', $topic_id);
  33.  
  34. message_die(GENERAL_MESSAGE, $lang['No_posts_topic']);
  35. }
  36.  
  37. $resync = FALSE;
  38. if ($forum_topic_data['topic_replies'] + 1 < $start + count($postrow))
  39. {
  40. $resync = TRUE;
  41. }
  42. elseif ($start + $board_config['posts_per_page'] > $forum_topic_data['topic_replies'])
  43. {
  44. $row_id = intval($forum_topic_data['topic_replies']) % intval($board_config['posts_per_page']);
  45. if ($postrow[$row_id]['post_id'] != $forum_topic_data['topic_last_post_id'] || $start + count($postrow) < $forum_topic_data['topic_replies'])
  46. {
  47. $resync = TRUE;
  48. }
  49. }
  50. elseif (count($postrow) < $board_config['posts_per_page'])
  51. {
  52. $resync = TRUE;
  53. }
  54.  
  55. if ($resync)
  56. {
  57. include($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
  58. sync('topic', $topic_id);
  59.  
  60. $result = $db->sql_query('SELECT COUNT(post_id) AS total FROM ' . POSTS_TABLE . ' WHERE topic_id = ' . $topic_id);
  61. $row = $db->sql_fetchrow($result);
  62. $total_replies = $row['total'];
  63. }
  64.  
  65. $sql = "SELECT *
  66. FROM " . RANKS_TABLE . "
  67. ORDER BY rank_special, rank_min";
  68. if ( !($result = $db->sql_query($sql)) )
  69. {
  70. message_die(GENERAL_ERROR, "Could not obtain ranks information.", '', __LINE__, __FILE__, $sql);
  71. }
  72.  
  73. $ranksrow = array();
  74. while ( $row = $db->sql_fetchrow($result) )
  75. {
  76. $ranksrow[] = $row;
  77. }
  78. $db->sql_freeresult($result);


et ca :

  1. //
  2. // Was a highlight request part of the URI?
  3. //
  4. $highlight_match = $highlight = '';
  5. if (isset($HTTP_GET_VARS['highlight']))
  6. {
  7. // Split words and phrases
  8. $words = explode(' ', trim(htmlspecialchars($HTTP_GET_VARS['highlight'])));
  9.  
  10. for($i = 0; $i < sizeof($words); $i++)
  11. {
  12. if (trim($words[$i]) != '')
  13. {
  14. $highlight_match .= (($highlight_match != '') ? '|' : '') . str_replace('*', '\w*', preg_quote($words[$i], '#'));
  15. }
  16. }
  17. unset($words);
  18.  
  19. $highlight = urlencode($HTTP_GET_VARS['highlight']);
  20. $highlight_match = phpbb_rtrim($highlight_match, "\\");
  21. }
25 Octobre 2006 13:35:32

Salut,

tu trouveras tes envoies dans phpbb_posts, phpbb_posts_text et phpbb_topics. Après pour les requetes SQL, je sais pas, je connais pas l'architecture. Sinon, il y a des forums de support phpbb aussi ;) 
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS