Geschrieben von spiegeleixxl am 01.11.2004, 21:04

Hoi Leute,
gleich ans Werkeln.

Also als aller erstes brauchen wir eine Zutatenliste!

1 PHP-Fähigen Space
1 MySQL-Fähigen Space
1 PHPBB-Forum
1 MySQL-Datenbank
1 PHPMyAdmin
2.5L Kaffee (optinal: Kakao oder Tee)

OK.
Unterteilt in 3 Teile:

1.PHPBB
2.MYSQL
3.PHP

Alles kurz und bündig. -^^-

PHPBB
--

Als erstes Installieren wir das PHPBB-Forum, das müsste jeden klar
sein, drum gehe ich nicht näher darauf ein. Wir richten es auf eine
Datenbank aus die ich hier testweise einfach 'test' nenne. Wir
brauchen dazu auch ein Forum das wir "News" nennen. Dort postet ihr
euren ersten, total sinnlosen Beitrag rein, wenns nichts wichtigeres
gibt. Wenn das geschafft ist, geht es ans Script-gemachte.

--

MySQL
--
Als nächstes müsst ihr herausfinden welche ID das Forum in der
Datenbank hat. Also geht in den PHPMyAdmin und wählt die Datenbank
'test' aus. Dort wählt ihr 'phpbb_forums' und schaut unter 'Browse'
was für eine 'forum_id' das Forum mit dem 'forum_name' "News" hat.
Notiert euch diese Zahl irgendwo auf, sie ist wichtig!

Alles weitere erledige ich.

PHP
--

So jetzt gehts ans eingemacht!
Als ersten mal brauchen wir eine Verbindung zur Datenbank.

<code>Filename: "mysql.inc"
<?
// Database Initalation
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "test";

$dbconn = mysql_connect($host,$dbuser,$dbpass);
mysql_select_db($dbname,$dbconn);
?>
</code>

Soweit so gut. Jetzt haben wir die MySQL Datenbank für PHP
initialisiert.

Weiter im Text.

<code>Filename: "news.php"
<?
// MySQL-Anbindung Einfügen
include("mysql.inc");

// ID des Newsforums. <- Hier die zuvor notierte/gemerkte Nummer eintragen!
$newsid = 1;
// Prefix des Forums
$prefix = 'phpbb_';
// Eine Variable wo wir die Seite speichern.
$site = '';

// Die Topics nacheinander auslesen aus der Datenbank
$result = mysql_query("SELECT * FROM ".$prefix."topics
WHERE forum_id=".$newsid."
ORDER BY topic_time DESC"
,$dbconn);

// Solange es noch News zu bearbeiten gibt...
while ($myrow = mysql_fetch_array($result)) {
// Wir geben den Tabellenkopf (anfang) aus. Erstmals nur den Topic Titel...
$site .= '
<table border="1" cellpadding="0" cellspacing="0" style="color: #FFFFFF;" summary="" width="90%" bgcolor="0077AA" >
<tr><td width=60%><font size=2>'.$myrow['topic_title'].'</font></td>';

// Einige Daten benötigen wir aus dem Post selbst heraus, also, raus damit ~^^~
$result2 = mysql_query("SELECT * FROM ".$prefix."posts
WHERE post_id=".$myrow['topic_first_post_id']
,$dbconn);
$myrow2 = mysql_fetch_array($result2);

// Und derjenige der den Post gemahct hat muss schließlich auch genannt werden.
$result3 = mysql_query("SELECT * FROM ".$prefix."users
WHERE user_id=".$myrow2['poster_id']
,$dbconn);
$myrow3 = mysql_fetch_array($result3);

// ... dann geben wir den Namen desjenigen der die News geschrieben hat aus, sowie Uhrzeit und Datum (kann man alles auch anders Formatieren) ...
$site .= '
<td>'.$myrow3['username'].'</td>
<td align="center">'.date("d.m.Y",$myrow['topic_time']).'<BR>'.date("G:i:s",$myrow['topic_time']).'</td></tr>';

// Jetzt holen wir uns den Post (wundert euch nich das hier schonwieder $result3 ist. Das ist PUPS EGAL. Die Variable war gebraucht, missbraucht und verwenden wir wieder.
$result3 = mysql_query("SELECT * FROM ".$prefix."posts_text
WHERE post_id=".$myrow['topic_first_post_id']
,$dbconn);
$myrow3 = mysql_fetch_array($result3);

// ... und schlussendlich geben wir den eigentlich Post aus. (nl2br ist nötig um die Zeilenbrüche korrekt darzustellen) und Tabelle zu.
$site .= '
<table border="1" width="90%" cellpadding="0" cellspacing="0">
<td bgcolor="#d1d7dc" style="color: #006699;"><font size=middle>'.
nl2br($myrow3['post_text']).'
</font></td></table><BR>';
}
echo $site;
?>
</code>

Ziemlich viel Code für ziemlich wenig Ausgabe ne? Ich weiß man könnte den Code hier und da noch ein
bisschen stutzen aber ich finde der passt so. Man könnte noch auch einen Direkt-Link machen zu dem
Forum-Topic aber das wird wieder zu Kompliziert. Belassen wirs dabei fürs Erste? Ja? OK.
Jetzt gönnt euch die letzte Zutat (falls nicht währenddessen geschehen): den Kaffee/Kakao/Tee ~^^~

Dann wars ds mit dem Tutorial soweit -^^- vielleicht gibts noch nen 2nd-Part mit Newsarchiv
(was eigentlich nur LIMIT funktion bei MySQL-Befehl wär oO) und den Kommentar-Zählungen.
Vergesst nicht alles anzupassen. Falls doch irgendetwas nicht stimmen sollte, PMed mich an.

MfG,
SpiegelEiXXL

Bewertung Anzahl
6
50,0 %
2 Bewertungen
5
25,0 %
1 Bewertungen
1
25,0 %
1 Bewertungen