Seite 1 von 1

Anzeige der letzten Themen

Verfasst: 10.04.2008 11:18
von Dude23
Hallo,

ich hoffe, dass das hier das richtige Forum ist - falls nicht, bitte verschieben!

Es geht um folgende Sache: Unter phpBB2 hatte ich einen kleinen Code, der es mir ermöglichte, die letzten 6 Themen als Link inkl. Datum und Zeit des letzten Beitrags in dem Thema anzuzeigen. Das sieht so aus:

1. Zeile: Titel des Threads (als Link)
2. Zeile: Datum und Uhrzeit des letzten Beitrags in diesem Thread

Das ganze funktioniert auch wunderbar unter phpBB3 (auf das ich jetzt gerne umsteigen möchte), allerdings mit einer Ausnahme: Hat man auf den Link geklickt, kam man im Forum automatisch zum letzten Beitrag - unter phpBB3 kommt man zwar auch in den Thread, aber leider zum ersten Beitrag.

Hier jetzt mal der Code:

Code: Alles auswählen

<?php
$host="localhost";
$username="---";
$password="---";
$database="---";

//Verbindung zur Datenbank
mysql_connect($host, $username, $password);

//Datenbankauswahl
mysql_select_db($database);

 $sql = 'SELECT t.topic_id, t.topic_title, t.topic_last_post_id, t.forum_id, p.post_id, p.poster_id, p.post_time, u.user_id, u.username'
        . ' FROM phpbb_topics t, phpbb_forums f, phpbb_posts p, phpbb_users u'
        . ' WHERE t.topic_id = p.topic_id AND '
        . ' f.forum_id = t.forum_id AND '
        . ' t.topic_status <> 2 AND '
        . ' p.post_id = t.topic_last_post_id AND '
        . ' p.poster_id = u.user_id'
        . ' ORDER BY p.post_id DESC LIMIT 6';
// wenn Abfrage möglich...
if ( $result = mysql_query($sql) )
{
   // dann Schleife solange ein Ergebnis ausgelesen werden kann...
   while ( $row = mysql_fetch_assoc($result) )
   {
      // mysql_fetch_assoc() füllt $row wie ein array() im Format: array('post_time' => 12345678)
      $frmDatum = date("d.m.Y", $row['post_time']);
      $frmZeit = date("H:i:s", $row['post_time']);
      $post = $row['post_id'];
      echo "<font color=black size=2><a href=../phpBB/phpBB2/viewtopic.php?p=$post#$post><font color=black size=2>".$row['topic_title']."</a><br>$frmDatum $frmZeit<br></br>";
   }
}
mysql_close();
?>
Und es sieht so aus als hätte im Link das "$post#$post" schlicht seine Wirkung verloren. Nämlich, dass er (der Link) direkt zum letzten Beitrag führt und nicht "nur" in den Thread.

Und jetzt die Frage: Kann mir jemand helfen? ;)

Vielen Dank im Voraus!

MfG
Dude

Verfasst: 10.04.2008 12:01
von bantu
Wo willst du die Themen denn anzeigen? Im Board?

Eventuell findest du weitere Anregungen im Quellcode dieser Modifikation: NV recent topics 1.0.0d

Verfasst: 10.04.2008 13:40
von HausAmSee
Geht relativ einfach:

Code: Alles auswählen

<?php
$host="localhost";
$username="---";
$password="---";
$database="---";

//Verbindung zur Datenbank
mysql_connect($host, $username, $password);

//Datenbankauswahl
mysql_select_db($database);

 $sql = 'SELECT t.topic_id, t.topic_title, t.topic_last_post_id, t.forum_id, p.post_id, p.poster_id, p.post_time, u.user_id, u.username'
        . ' FROM phpbb_topics t, phpbb_forums f, phpbb_posts p, phpbb_users u'
        . ' WHERE t.topic_id = p.topic_id AND '
        . ' f.forum_id = t.forum_id AND '
        . ' t.topic_status <> 2 AND '
        . ' p.post_id = t.topic_last_post_id AND '
        . ' p.poster_id = u.user_id'
        . ' ORDER BY p.post_id DESC LIMIT 6';
// wenn Abfrage möglich...
if ( $result = mysql_query($sql) )
{
   // dann Schleife solange ein Ergebnis ausgelesen werden kann...
   while ( $row = mysql_fetch_assoc($result) )
   {
      // mysql_fetch_assoc() füllt $row wie ein array() im Format: array('post_time' => 12345678)
      $frmDatum = date("d.m.Y", $row['post_time']);
      $frmZeit = date("H:i:s", $row['post_time']);
      $post = $row['post_id'];
      echo "<font color=black size=2><a href=../phpBB/phpBB2/viewtopic.php?p=$post#p$post><font color=black size=2>".$row['topic_title']."</a><br>$frmDatum $frmZeit<br></br>";
   }
}
mysql_close();
?>
Bitteschön. In phpBB3 befindet sich vor der eig. ID des Postings nämlich nun noch ein "p". ;)

Verfasst: 10.04.2008 13:48
von Dude23
@bantu Ne, auf der Homepage, zu dem das Forum gehört.

@HausAmSee Ich hab mich bisher noch nicht genügend mit der neuen Version beschäftigt. Ich danke vielmals für die schnelle Antwort. Werd's gleich ausprobieren.

edit: Hat funktioniert, danke!