Niddy Skrevet 14. september 2007 Del Skrevet 14. september 2007 (endret) 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 14. september 2007 av Niddy Lenke til kommentar
TheClown Skrevet 16. september 2007 Del Skrevet 16. september 2007 (endret) 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 16. september 2007 av TheClown Lenke til kommentar
Niddy Skrevet 16. september 2007 Forfatter Del Skrevet 16. september 2007 Takker! Dette gjorde en idé langt mer realistisk! Sjekker om jeg får det til å funke i morra Lenke til kommentar
TheClown Skrevet 16. september 2007 Del Skrevet 16. september 2007 No Problem Si i fra hvis du vil ha litt enkel tweaking så kan jeg sikkert hjelpe deg. Scriptet er lagd i samkjør med en .css fil, derfor kan outputen se litt rart ut. Lenke til kommentar
Niddy Skrevet 19. september 2007 Forfatter Del Skrevet 19. september 2007 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) Lenke til kommentar
TheClown Skrevet 23. september 2007 Del Skrevet 23. september 2007 (endret) 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 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 23. september 2007 av TheClown Lenke til kommentar
Niddy Skrevet 23. september 2007 Forfatter Del Skrevet 23. september 2007 Tusen takk! skal sette i gang å jobbe så fort jeg ikke er fyllesjuk lengre Lenke til kommentar
TheClown Skrevet 23. september 2007 Del Skrevet 23. september 2007 (endret) No problemo. Send meg en PM hvis du trenger hjelp siden jeg ikke er så ofte innom forumet her Endret 23. september 2007 av TheClown Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå