Seite 1 von 1

phpBB: Alle Antworten auf ein Thema auslesen?

Verfasst: 14.04.2003 21:42
von Jason
Hi,
ich habe mir ein kleines Script geschrieben das alle Themen ( Mit einem Limit von 1000 ) aus der tabelle phpbb_topics ausliest nun möchte ich zusätzlich zu den Topics noch die Antworten auf die Topics auslesen das habe ich so probiert:
Aber es wird nur die erste Antwort auf das thema angezeigt.
Hat irgendjemand ne idee wie ich das richtig hinbekommen kann also das alle Antworten und nicht bloß die erste Antwort auf das Thema angezeigt wird?

Hier auch mal der komplette teil mit auslesen der themen:
Ich wäre dankbar wenn mir da jemand weiterhelfen könnte :-?

Grüße Jason

Verfasst: 14.04.2003 22:33
von itst
Du brauchst für die Posts (also die Antworten auf das Topic) auch eine while-Schleife.

Verfasst: 14.04.2003 22:38
von Jason
Jo sowas hab ich mir schon gedacht nur weiss ich nicht wo die while schleife hin muss wenn ich es so mache:
wird nur die letzte Antwort auf das jeweilige Thema angezeigt :-?

Gruß Jason

Verfasst: 14.04.2003 22:45
von itst

Code: Alles auswählen

if ( !empty($postsrow['post_id']) )
{
    $posts .= 'RE: <a href="viewtopic.php?' . POST_POST_URL . '=' . $postsrow['post_id'] . '#' . $postsrow['post_id'] . '">' . $postsrow['post_subject'] . '</a><br>';
} else

Verfasst: 14.04.2003 22:50
von Jason
Danke!! funktioniert 1a :)

Gruß Jason

Verfasst: 15.04.2003 00:02
von itst
Büdde ;-)

Verfasst: 15.04.2003 00:26
von Jason
Ah hab mich zu früh gefreut es werden jetzt bei jedem thema diegGleichen Posts als Antworten angezeigt also nicht bei jedem Thema die Antworten die auch zum Thema gehören sondern die Antworten die nur zum 1 Augegebenen Thema gehören.

Vieleicht habe ich etwas zu dumm erklärt was ich genau machen will also ich lese mit diesem code-teil wie schon gesagt alle Themen (Limitiert auf 200) aus:

Code: Alles auswählen

$sql = "SELECT t.topic_id, t.topic_title
        FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f
        WHERE f.forum_id = t.forum_id
        ORDER BY t.topic_title $sortdir_topics
        LIMIT $offset, $offsetstat";

if( !($result = $db->sql_query($sql)) )
{
   message_die(GENERAL_ERROR, 'Could not query topic info', '', __LINE__, __FILE__, $sql);
}
       while ( $row = $db->sql_fetchrow($result) )
       {

       $topics = '<a href="viewtopic.php?' . POST_TOPIC_URL . '=' . $row['topic_id'] . '">' . $row['topic_title'] . '</a><br>';
       $template->assign_block_vars('topics', array(
                                        'TOPIC_LINKS' => $topics)
                                );
       }
so sieht der template teil aus:

Code: Alles auswählen

<!-- BEGIN topics -->
{topics.TOPIC_LINKS}
<!-- END topics -->
Dann werden die ersten 200 themen als Link untereinander ausgegeben so:
ich wollte jetzt zusätzlich noch die Antworten die auf diese themen gegeben wurden ausgeben lassen das ganze sollte dann so aussehen:
Wenn ich es jetzt mit deinem Code mache werden wie gesagt bei allen themen die gleichen Antworten angezeigt wie beim ersten Thema das ausgegeben wird.Ist es irgendwie möglich das so hinzukriegen?

Gruß Jason

Verfasst: 15.04.2003 00:38
von itst
Poste bitte nochmal Deinen Code und das Template.

Verfasst: 15.04.2003 12:28
von Jason
Sorry war gestern abend zu müde zum posten :P Also der code der php site in der roh fassung (Den teil mit den Antworten hab ich erstmal wieder ausgebaut da entweder nur 1 Antwort angezeigt wird oder wie gesagt bei allen die gleichen Antworten angezeigt wurden) sieht so aus:

Code: Alles auswählen

<?php

$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

$userdata = session_pagestart($user_ip, PAGE_INDEX, $session_length);
init_userprefs($userdata);

include($phpbb_root_path . 'includes/page_header.'.$phpEx);

//Get offset status for topics
$offsetstat = '200';

if( isset($HTTP_GET_VARS['offset']) || isset($HTTP_POST_VARS['offset']) )
{
   $offset = ( isset($HTTP_POST_VARS['offset']) ) ? intval($HTTP_POST_VARS['offset']) : intval($HTTP_GET_VARS['offset']);
}
else
{
   $offset = 0;
}

$sql = "SELECT t.topic_id, t.topic_title
        FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f
        WHERE f.forum_id = t.forum_id
        ORDER BY t.topic_title
        LIMIT $offset, $offsetstat";

if( !($result = $db->sql_query($sql)) )
{
   message_die(GENERAL_ERROR, 'Could not query topic info', '', __LINE__, __FILE__, $sql);
}
       while ( $row = $db->sql_fetchrow($result) )
       {

       $topics = '<a href="viewtopic.php?' . POST_TOPIC_URL . '=' . $row['topic_id'] . '">' . $row['topic_title'] . '</a><br>';
       $template->assign_block_vars('topics', array(
                                        'TOPIC_LINKS' => $topics)
                                );
       }

$offset = $offset + $offsetstat;
$offsetminus = $offset - $offsetstat - $offsetstat;

if ( $HTTP_GET_VARS['offset'] == $offsetstat )
{
$offseturl = '<a href="topics.php">Die vorherigen ' . $offsetstat . ' Themen anzeigen</a>';
}
else
{
$offseturl = '<a href="topics.php?offset=' . $offsetminus . '">Die vorherigen ' . $offsetstat . ' Themen anzeigen</a>';
}

if ( $offset > $offsetstat )
{
$new_back = $offseturl;
$new_next = '&::&<a href="topics.php?offset=' . $offset . '">Die nächsten ' . $offsetstat . ' Themen anzeigen</a>';
}
else
{
$new_next = '<a href="topics.php?offset=' . $offset . '">Die nächsten ' . $offsetstat . ' Themen anzeigen</a>';
}

$template->set_filenames(array(
   'body' => 'topics.tpl',
   'jumpbox' => 'jumpbox.tpl')
);

$jumpbox = make_jumpbox($forum_id);
$template->assign_vars(array(
   'L_GO' => $lang['Go'],
   'L_JUMP_TO' => $lang['Jump_to'],
   'L_SELECT_FORUM' => $lang['Select_forum'],

   'S_JUMPBOX_LIST' => $jumpbox,
   'S_JUMPBOX_ACTION' => append_sid('viewforum.$phpEx'))
);
$template->assign_var_from_handle('JUMPBOX', 'jumpbox');


$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
Und der inhalt des templates ist eigentlich nur der den ich oben schon gepostet habe:

Code: Alles auswählen

<!-- BEGIN topics --> 
{topics.TOPIC_LINKS} 
<!-- END topics -->
Gruß Jason