phpbb als News-System nutzen mit Kommentaren

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Pada
Mitglied
Beiträge: 102
Registriert: 25.08.2005 22:30

phpbb als News-System nutzen mit Kommentaren

Beitrag von Pada »

Hallo,

Ich schreibe auf meiner Webseite alle News 2 mal.
Einmal in eine externe php Datei und einmal direkt ins Forum.
Ich mache also zu jeder neuen News, einen extra Thread im Forum "News" auf.

Ich möchte nun unter der Newsnachricht in der externen php Datei, einen Link in den entsprechenden Thread setzen.

Der Link sollte so ausehen:

Code: Alles auswählen

Kommentare (12)
Der Link so also immer automatisch generiert werden und anzeigen, wie oft auf den Thread schon geantortet worden ist.

Welchen SLQ Befhel bracuhe ich da.
(achtung ich bin Anfänger also bitte nicht Fachsprache)
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Entweder du verwendest den "Cache" aus der Topic-Tabelle:

Code: Alles auswählen

SELECT topic_replies FROM phpbb_topics
  WHERE topic_id = <deine Topic-ID>
oder du lässt die Anzahl der Posts zählen:

Code: Alles auswählen

SELECT COUNT(p.post_id) AS topic_replies FROM phpbb_topics t, phpbb_posts p
  WHERE p.topic_id = t.topic_id
    AND p.post_id <> t.topic_first_post_id
    AND t.topic_id = <deine Topic-ID>
Für <deine Topic-ID> musst du dann die ID des entsprechenden Themas in deinem Forum eintragen.

Das ganze kannst du mit den [php:mysql]-Funktionen (=> mysql_query()) ausführen und entweder mit mysql_fetch_row()/mysql_fetch_array()/mysql_fetch_assoc() oder mit mysql_result() die Anzahl aus dem Ergebnis holen. :wink:
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Pada
Mitglied
Beiträge: 102
Registriert: 25.08.2005 22:30

Beitrag von Pada »

Vielen Dank schonmal.

Ich tu mich leider sehr schwer, den Befehl selbstständig zu formulieren. auch mit Hilfe deiner Seite da ich fast kein php kann und gar kein MySLQ...

Mir würde also nur der ganze Befehl weiter helfen...danke
123teddy321
Mitglied
Beiträge: 290
Registriert: 29.07.2005 17:27
Kontaktdaten:

Beitrag von 123teddy321 »

das ist doch der ganze befehl :wink:
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Auf der von mir verlinkten Seite ist (imho) ein Beispiel zu den MySQL-Funktionen. Du musst nur noch das Query ändern und dir die von dir gewünschte Ausgabeart aussuchen (ich würde an der Stelle einfach mysql_result() verwenden, da ja nur ein Wert zurückgegeben wird).
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Pada
Mitglied
Beiträge: 102
Registriert: 25.08.2005 22:30

Beitrag von Pada »

S2B hat geschrieben:Auf der von mir verlinkten Seite ist (imho) ein Beispiel zu den MySQL-Funktionen. Du musst nur noch das Query ändern und dir die von dir gewünschte Ausgabeart aussuchen (ich würde an der Stelle einfach mysql_result() verwenden, da ja nur ein Wert zurückgegeben wird).
sorry aber die Seite ist relativ lang und wenn man noch nie was mit MySLQ gemacht hat, ist es schwierig da was heraus zu finden.

Ich hab jetzt seit 1 Stunde herumprobiert, aber nix gefunden was mich weiter bringt.

Wenn das ganze anscheinend so einfach ist, schafft es vielleicht ja doch noch jemand mir den Befehl komplett zugeben, so dass ich nur noch die Verbindungsdaten und die Topic-ID eingeben muss.

Vielen Dank
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Zuerst mal: MySQL. :wink:

Das ist 1:1 der Beispiel-Code auf der von mir verlinkten Seite:

Code: Alles auswählen

<?php
/* Verbindung aufbauen, auswählen einer Datenbank */
$link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
   or die("Keine Verbindung möglich: " . mysql_error());
echo "Verbindung zum Datenbankserver erfolgreich";
mysql_select_db("Meine_Datenbank") or die("Auswahl der Datenbank fehlgeschlagen");

/* ausführen einer SQL Anfrage */
$query = "SELECT * FROM Meine_Tabelle";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());

/* Ausgabe der Ergebnisse in HTML */
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
   echo "\t<tr>\n";
   foreach ($line as $col_value) {
       echo "\t\t<td>$col_value</td>\n";
   }
   echo "\t</tr>\n";
}
echo "</table>\n";

/* Freigeben des Resultsets */
mysql_free_result($result);

/* schliessen der Verbinung */
mysql_close($link);
?> 
Man nehme die Ausgabe heraus (wir brauchen ja etwas Anderes) und füge das Query ein. $topic_id ist die Variable für die ID des Topics

Code: Alles auswählen

<?php
/* Verbindung aufbauen, auswählen einer Datenbank */
$link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
   or die("Keine Verbindung möglich: " . mysql_error());
echo "Verbindung zum Datenbankserver erfolgreich";
mysql_select_db("Meine_Datenbank") or die("Auswahl der Datenbank fehlgeschlagen");

/* ausführen einer SQL Anfrage */
$query = "SELECT COUNT(p.post_id) AS topic_replies FROM phpbb_topics t, phpbb_posts p
  WHERE p.topic_id = t.topic_id
    AND p.post_id <> t.topic_first_post_id
    AND t.topic_id = $topic_id";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());

/* An diese Stelle kommt die Auswertung des Queries */

/* Freigeben des Resultsets */
mysql_free_result($result);

/* schliessen der Verbinung */
mysql_close($link);
?>
So weit hättest du eigentlich ohne Probleme kommen können. Was jetzt noch fehlt, ist die Auswertung, also wie du jetzt den abgefragten Wert in eine Variable bekommst und ihn nachher verwenden kannst:

Code: Alles auswählen

// Lösung mit mysql_result
$topic_replies = mysql_result($result, 0);

// Lösung mit mysql_fetch_assoc
$row = mysql_fetch_assoc($result);
$topic_replies = $row['topic_replies'];
Und das war's auch schon... :wink:
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Mitglied
Beiträge: 19
Registriert: 27.05.2005 08:56

Beitrag von »

hallo,
weiss nicht ob's noch hilft aber es gibt da nen ziemlich guten aufsatz für phpbb der dir helfen könnte und zwar der phpbb blog...
man richtet ein neues forum ein (zb. news) und postet dort die news rein, die man dann auch nochmal per phpbb blog auf http://deinedomain.de/blog?undso1 anzeigen kann ...

wenn dir das immer noch zu unflexible ist dann kannst du auch noch phpbb fetch benutzen - selbes prinzip wie oben. allerdings kannst du die post aus forum news per phpbbfetch überall anzeigen lassen - soweit wie ich das verstanden habe ...
SkullCrusher
Mitglied
Beiträge: 59
Registriert: 16.09.2004 14:45

Beitrag von SkullCrusher »

Hey Klasse, so was hab ich gesucht! :)

Doch kommt bei mir folgende Fehlermeldung
Warning: mysql_result(): 21 is not a valid MySQL result resource in C:\Programme\xampp\htdocs\phpBB2\news.php on line 30

Dies ist bei beiden Lösungsvorschlägen der Fall. Muss hieran noch etwas geändert werden? Ich kenn mich leider immer noch nicht aus! :(


Hoffe, dass ihr mir auch diesmal helfen könnt!

Danke
SkullCrusher
Antworten

Zurück zu „Coding & Technik“