Avatar billede kappel Nybegynder
31. marts 2005 - 13:27 Der er 10 kommentarer og
1 løsning

Hente 5 seneste svar ud fra phpbb

Hej

Jeg skal bruge lidt hjælpe til hente de 5 seneste svar ud fra phpbb - forum:

Hvordan får jeg vist overskriften på det topic som er besvaret?
Det er noget med at mikse to tabeller, håber nogle kan hjælpe.
Det skal se sådan her ud: dato tid overskrift

Har denne kode foreløbigt (men det er noget rod):
<?php
    $sql = "
        SELECT topic_id, post_id, post_time, FROM_UNIXTIME(post_time, '%d/%m %h:%i') as topic_add_time
        FROM phpbb_posts
        ORDER BY post_id DESC
        LIMIT 5";
    $result = mysql_query($sql) or die( mysql_error() );
    echo '<span class="bold_boldheader">5 seneste SVAR: (svar)</span>';
    echo '<span class="bold_linebreak_top"><br><br></span>';
    while ( $data = mysql_fetch_assoc($result) ) {
        echo "<span class=\"bold_time\">{$data['topic_add_time']}&nbsp;</span><a href=\"http://forum.kappels.net/viewtopic.php?t={$data['post_id']}\" target=\"_blank\" class=\"bold_headline\">{$data['topic_title']}&nbsp;&nbsp;({$data['']})</a><br>";
    }
    ?>

Skal vises ligesom denne (virker):
  <?php
    $sql = "
        SELECT topic_id, topic_title, topic_replies, FROM_UNIXTIME(topic_time, '%d/%m %h:%i') as topic_add_time
        FROM phpbb_topics
        ORDER BY topic_time DESC
        LIMIT 5";
    $result = mysql_query($sql) or die( mysql_error() );
    echo '<span class="bold_boldheader">5 seneste indlæg: (svar)</span>';
    echo '<span class="bold_linebreak_top"><br><br></span>';
    while ( $data = mysql_fetch_assoc($result) ) {
        echo "<span class=\"bold_time\">{$data['topic_add_time']}&nbsp;</span><a href=\"http://forum.kappels.net/viewtopic.php?t={$data['topic_id']}\" target=\"_blank\" class=\"bold_headline\">{$data['topic_title']}&nbsp;&nbsp;({$data['topic_replies']})</a><br>";
    }
    ?>

Den kan ses her: http://super6.kappels.net/

Mvh. Mikkel
Avatar billede barklund Nybegynder
31. marts 2005 - 13:33 #1
<?php
    $sql = "
        SELECT p.topic_id, FROM_UNIXTIME(p.post_time, '%d/%m %h:%i') as topic_add_time, t.topic_title
        FROM phpbb_posts p INNER JOIN phpbb_topics t ON p.topic_id = t.topic_id
        ORDER BY p.post_time DESC
        LIMIT 5";
    $result = mysql_query($sql) or die( mysql_error() );
    echo '<span class="bold_boldheader">5 seneste SVAR: (svar)</span>';
    echo '<span class="bold_linebreak_top"><br><br></span>';
    while ( $data = mysql_fetch_assoc($result) ) {
        echo "<span class=\"bold_time\">{$data['topic_add_time']}&nbsp;</span><a href=\"http://forum.kappels.net/viewtopic.php?t={$data['topic_id']}\" target=\"_blank\" class=\"bold_headline\">{$data['topic_title']}</a><br>";
    }
    ?>

Vel blot?

--
Morten Barklund
Avatar billede kappel Nybegynder
31. marts 2005 - 13:46 #2
Kanon, det virker.
Har lige et par spørgsmål:
når du skriver p. og t. - hvad betyder det?

Kan man gøre sådan at topics ikke bliver vist?

Kan man gøre sådan at en post kun vises én gang? der er nemlig en post der vises to gange, som det ser ud nu.

Mvh. Mikkel
Avatar billede barklund Nybegynder
31. marts 2005 - 13:52 #3
Så du vil ikke se topic-overskrifterne - kun post-overskrifterne? Men den skal linke til topics, eller?

Og p og t er identifiers for de to tabeller - jeg kunne også have skrevet de fulde tabelnavne, men det andet er nemmere. Du kan se navngivningen i FROM delen, hvor man bruger tabel AS t.
Avatar billede barklund Nybegynder
31. marts 2005 - 13:53 #4
Og jeg har endda udeladt AS - det var ikke så pænt, men med samme resultat :)
Avatar billede kappel Nybegynder
31. marts 2005 - 14:02 #5
ok.

jeg bliver helt i tvivl om hvad der giver bedst mening, hvis du nemt kan lave det, vil jeg gerne se hvordan det ser ud.

Så må jeg finde ud af om jeg skal bruge det :)

Mikkel
Avatar billede barklund Nybegynder
31. marts 2005 - 14:49 #6
Hvis der er en post.post_title, så er det jo bare uden joins:

<?php
    $sql = "
        SELECT topic_id, FROM_UNIXTIME(post_time, '%d/%m %h:%i') as topic_add_time, post_title
        FROM phpbb_posts
        ORDER BY post_time DESC
        LIMIT 5";
    $result = mysql_query($sql) or die( mysql_error() );
    echo '<span class="bold_boldheader">5 seneste SVAR: (svar)</span>';
    echo '<span class="bold_linebreak_top"><br><br></span>';
    while ( $data = mysql_fetch_assoc($result) ) {
        echo "<span class=\"bold_time\">{$data['topic_add_time']}&nbsp;</span><a href=\"http://forum.kappels.net/viewtopic.php?t={$data['topic_id']}\" target=\"_blank\" class=\"bold_headline\">{$data['post_title']}</a><br>";
    }
?>
Avatar billede kappel Nybegynder
31. marts 2005 - 15:32 #7
det er der ikke :)
Avatar billede barklund Nybegynder
31. marts 2005 - 16:20 #8
Hvad skal der så stå på linket? Selve indlægget?
Avatar billede kappel Nybegynder
31. marts 2005 - 17:58 #9
ja
Avatar billede barklund Nybegynder
02. april 2005 - 14:13 #10
Så ret til indholdsteksten:

<?php
    $sql = "
        SELECT topic_id, FROM_UNIXTIME(post_time, '%d/%m %h:%i') as topic_add_time, post_content
        FROM phpbb_posts
        ORDER BY post_time DESC
        LIMIT 5";
    $result = mysql_query($sql) or die( mysql_error() );
    echo '<span class="bold_boldheader">5 seneste SVAR: (svar)</span>';
    echo '<span class="bold_linebreak_top"><br><br></span>';
    while ( $data = mysql_fetch_assoc($result) ) {
        echo "<span class=\"bold_time\">{$data['topic_add_time']}&nbsp;</span><a href=\"http://forum.kappels.net/viewtopic.php?t={$data['topic_id']}\" target=\"_blank\" class=\"bold_headline\">{$data['post_content']}</a><br>";
    }
?>

Hvis den altså hedder post_content :)
Avatar billede kappel Nybegynder
04. december 2005 - 07:35 #11
-> barklund

Smid et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester