Gå til innhold

Hvordan få informasjon fra et Forum til Webside?


Anbefalte innlegg

Jeg ønsker å vise alle poster i et forum på en hjemmeside. Det hele er hostet på samme

server.

 

 

 

Jeg er dessverre en nybegynner i PHP og har store problemer med å forstå hvordan jeg skal få dette til.

 

 

1. MySQL

2. PHPBBv3 forum

 

Ønskes å kunne se alle tråder laget i det forumet (et forum inne i forumet) på en hjemmeside. Hvordan gjør jeg det?

 

 

(Eksempel: Siste fra forum som er på Hardware.no, det er det jeg ønsker å oppnå)

Endret av Niddy
Lenke til kommentar
Videoannonse
Annonse

Her er et script jeg har brukt for å lage clanserver.no:

 

<?php

$host = "lalala";
$user = "lalala";
$password = "lalaal";

$connection = mysql_connect($host,$user,$password);

mysql_select_db("phpbb3", $connection);
// Conection til database

$sql = "SELECT  t1.topic_time, t1.topic_id, t1.forum_id, t1.topic_title, t1.topic_poster, t1.topic_replies, t1.topic_first_post_id, t2.user_id, t2.username, t3.post_id, t3.post_text FROM phpbb_topics t1, phpbb_users t2, phpbb_posts t3 WHERE t1.topic_poster = t2.user_id AND t1.forum_id = 18 AND t1.topic_first_post_id = t3.post_id ORDER BY t1.topic_time DESC LIMIT 5";

// Stater looping og echoing av innhold fra databasen

// topic_id = IDen som er gitt til hver topic
// forum_id = IDen som er gitt til hvert forum (CSS, BF2 osv)
// topic_title = Tittelen på en tråd/topic
// topic_poster = Samme som userID. IDen til brukeren som poster tråden
// topic_replies = Antall svar i hver tråd
// user_id = Iden til brukere
// username = Selve brukernavnet til brukeren

$result=mysql_query($sql) or die(mysql_error());
while ($row=mysql_fetch_assoc($result))
{

   echo "<h3>" . $row['topic_title'] . "</h3>";

// Slutt på tittel

echo "<div id='left'>";
echo "<p>" . $row['post_text'] .  "   <a href='http://www.clanserver.no/forum/viewtopic.php?t=" . $row['topic_id'] . "' target='_blank' >Les mer</a></p><h3> </h3>";

// Slutt på posttexten

echo "";
   echo "<p><b>Postet av:</b> <a href='http://www.clanserver.no/forum/memberlist.php?mode=viewprofile&u=" . $row['topic_poster'] . "' target='_blank' >" . $row['username'] . "</a> | <b>Kommentarer:</b> " . $row['topic_replies'] . " | <b>Publisert:</b> ";
echo date( 'd M Y H:i', $row['topic_time'] );
echo "</p>";

// Slutt på infobox

echo "<br /></div>";

}
mysql_free_result($result);
?>

 

Outputen ser da slik ut: http://www.clanserver.no

 

(Ja vi har brukt phpBB3 :) )

Endret av TheClown
Lenke til kommentar
Får det ikke til. :S Men klarer å logge på SQL serveren, men den vil ikke vise noe informasjon. (Testa ved å skrive en skrivefeil med vilje på innloggingsdelen)

Ahh, jeg overså en liten detalje :) I koden jeg postet kan du finne følgende linje:

WHERE t1.topic_poster = t2.user_id AND t1.forum_id = 18 AND

 

Det betyr at koden henter ut info fra underforumet i phpBB3 som har id 18

 

idnx9.png

 

Altså tallet som kommer etter: http://clanserver.no/forum/viewforum.php?f=

 

Bare forandre tallet 18 i koden til det underforumet du vil hente ut fra. :)

 

(Hvis du vil hente ut fra flere enn et forum må du snuse litt rundt selv, er ikke helt sikker på hvordan man gjør det.)

 

$sql = "SELECT  t1.topic_time, t1.topic_id, t1.forum_id, t1.topic_title, t1.topic_poster, t1.topic_replies, t1.topic_first_post_id, t2.user_id, t2.username, t3.post_id, t3.post_text FROM phpbb_topics t1, phpbb_users t2, phpbb_posts t3 WHERE t1.topic_poster = t2.user_id AND t1.forum_id = [DET TALLET DU VIL HA HER] AND t1.topic_first_post_id = t3.post_id ORDER BY t1.topic_time DESC LIMIT 5";

 

-------------------------------

 

En annen ting du kanskje vil forandre på er antall "tråder" den skal vise på siden.

 

Slik scriptet er nå poster den de 5 siste trådene

 

$sql = "SELECT  t1.topic_time, t1.topic_id, t1.forum_id, t1.topic_title, t1.topic_poster, t1.topic_replies, t1.topic_first_post_id, t2.user_id, t2.username, t3.post_id, t3.post_text FROM phpbb_topics t1, phpbb_users t2, phpbb_posts t3 WHERE t1.topic_poster = t2.user_id AND t1.forum_id = 18 AND t1.topic_first_post_id = t3.post_id ORDER BY t1.topic_time DESC LIMIT 5";

 

Bare forandre 5

 

ORDER BY t1.topic_time DESC LIMIT 5

 

Til den verdien du selv vil ha.

Endret av TheClown
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...