YourWBB


yourWBB » WoltLab Burning Board Generation 2 * » Alles von und für das WBB Lite 1.0.x » [WBB Lite 1.0.x] Ideen, Wünsche und Suche » Gruppenbeiträge zählen und ausgeben nur wie? » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag 2.900 Views | | Thema zu Favoriten hinzufügen

Neues Thema erstellen Antwort erstellen

Dieses Thema wurde als unerledigt markiert. Thread unerledigt

Zum Ende der Seite springen Gruppenbeiträge zählen und ausgeben nur wie?
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Seven27
Mitglied


Dabei seit: 21.07.12
Beiträge: 30
Fähigkeiten: WBB Lite 1 Fortgeschritten
Forenversion: Lite 1.0

 Gruppenbeiträge zählen und ausgeben nur wie? Antworten Zitieren Editieren Melden       UP

Hallo,

ich habe eine Frage und zwar finde ich leider keine Modifikation um verschiedene Gruppenposts zu zählen, denke jedoch das diese Funktion nicht so schwer sein dürfte. Da ich sie vielleicht aber auch nur übersehen habe, wollte ich erstmal fragen.

Ich freue mich natürlich auch sehr über eine Antwort ob man nicht das Zählen der Userbeiträge in so weit abändern könnte das man auch zusätzlich Gruppenbeiträge zählen kann (die muss nicht im Thread ausgegeben werden pro Person sondern irgendwo im Header oder Footer). Zudem sollten auch nur Beiträge aus einem bestimmten Forum gezählt werden.

Wenn jemand weiß wie man das genau macht oder mir dabei unter die Arme greifen würde, würde ich mich richtig freuen.

Ich denke diese Funktion ist für einige Boards von Interesse, zumindest für solche mit Punkteangaben in Form von gezählten Beiträgen.

-----------------------------> 1. erledigt

nun ist die Frage wie ich auf der tpl. Seite mehrere Gruppe anzeigen lassen kann?

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Seven27: 14.06.14 11:38.

28.05.14 18:19 Seven27 ist offline E-Mail Finden Als Freund hinzufügen
Schrimm
Banned


Dabei seit: 21.08.11
Beiträge: 700

Antworten Zitieren Editieren Melden       UP

Hallo,

Das stellt kein Problem dar.

Mit folgender Abfrage sollte dies funktionieren:
php:
1:
$posts=$db->query_first("SELECT COUNT(*) AS p.posts FROM bb".$n."_posts p LEFT JOIN bb".$n."_users u ON (u.userid=p.userid) WHERE u.groupid='ID' ");


Willst du noch ein spezielles Board haben, musst du die Abfrage ändern in:
php:
1:
$posts=$db->query_first("SELECT COUNT(*) AS p.posts FROM bb".$n."_posts p LEFT JOIN bb".$n."_threads t ON (t.threadid=p.threadid) LEFT JOIN bb".$n."_users u ON (u.userid=p.userid) WHERE u.groupid='ID' AND t.boardid='ID'");
03.06.14 19:52 Schrimm ist offline Finden Als Freund hinzufügen
Seven27
Mitglied


Dabei seit: 21.07.12
Beiträge: 30
Fähigkeiten: WBB Lite 1 Fortgeschritten
Forenversion: Lite 1.0

Themenstarter Thema begonnen von Seven27
Antworten Zitieren Editieren Melden       UP

Uii smile das klingt ja schon mal gut das es zumindest funktionieren kann. Vielen Dank Dir !!!

Leider hab ich keine Ahnung in welche PHP ich das packe damit ich es zB. im Header ausgeben kann. Da kann ich es ja schlecht in die Index oder Thread packen.

Wenn ich eine eigene neue PHP Seite anlege dann sagt er mir vermutlich logischerweise folgendes:

Zitat:
Fatal error: Call to a member function query_first() on a non-object in /users/twentysevendays/www/ausgabe.php on line 5


Ich hab da nun das hier eingefügt und ID in 1 geändert:
code:
1:
$posts=$db->query_first("SELECT COUNT(*) AS p.posts FROM bb".$n."_posts p LEFT JOIN bb".$n."_users u ON (u.userid=p.userid) WHERE u.groupid='1' ");

Könntest Du mir sagen wo ich das reinpacken muss damit es funktioniert? smile
Meine aktuelle neue PHP Seite besteht nur aus dem (ich hätte sie dann über einen iframe eingebunden damit es im Header angezeigt werden kann).

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
<html>
 <head>
 </head>

 <body>

    <?php
        mysql_connect("***","***","***");
        mysql_select_db("***"); 

$posts=$db->query_first("SELECT COUNT(*) AS p.posts FROM bb".$n."_posts p LEFT JOIN bb".$n."_users u ON (u.userid=p.userid) WHERE u.groupid='1' ");

   ?>

 </body>
</html>

VG Seven

Dieser Beitrag wurde 5 mal editiert, zum letzten Mal von Seven27: 09.06.14 14:34.

09.06.14 14:28 Seven27 ist offline E-Mail Finden Als Freund hinzufügen
Pigsel
Mitglied


images/avatars/avatar-5749.gif

Dabei seit: 05.09.11
Beiträge: 774
Fähigkeiten: WBB Lite 1 Fortgeschritten
Forenversion: Lite 1.0

Antworten Zitieren Editieren Melden       UP

versuch es mal mit der global über dem:

code:
1:
eval ("\$header = \"".$tpl->get("header")."\";");


__________________
Ein Leben ohne CodeBug's ist ein Leben im Paradies

09.06.14 17:54 Pigsel ist offline E-Mail Finden Als Freund hinzufügen
Seven27
Mitglied


Dabei seit: 21.07.12
Beiträge: 30
Fähigkeiten: WBB Lite 1 Fortgeschritten
Forenversion: Lite 1.0

Themenstarter Thema begonnen von Seven27
Antworten Zitieren Editieren Melden       UP

Hey Pigsel,

ich hab es probiert, leider kommt dann folgende Fehlermeldung:

SQL-DATABASE ERROR

Database error in WoltLab Burning Board: Invalid SQL: SELECT COUNT(*) AS p.posts FROM bb1_posts p LEFT JOIN bb1_users u ON (u.userid=p.userid) WHERE u.groupid='1'
mysql error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '.posts FROM bb1_posts p LEFT JOIN bb1_users u ON (u.userid=p.userid) WHERE u.gro' at line 1
mysql error number: 1064
Date: 09.06.2014 @ 18:58
Script: /index.php?sid=
Referer: http://twentysevendays.bplaced.de/wbblit...rslist.php?sid=

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Seven27: 09.06.14 19:00.

09.06.14 18:59 Seven27 ist offline E-Mail Finden Als Freund hinzufügen
Pigsel
Mitglied


images/avatars/avatar-5749.gif

Dabei seit: 05.09.11
Beiträge: 774
Fähigkeiten: WBB Lite 1 Fortgeschritten
Forenversion: Lite 1.0

Antworten Zitieren Editieren Melden       UP

dann kommt es vlt. hier mit dazu in der /global.php eingefügt unter:
php:
1:
$post $db->query_first("SELECT * FROM bb".$n."_posts WHERE postid = '$postid'");


php:
1:
2:
3:
4:
5:
6:
7:
8:
/** verify ids **/
if(isset($postid)) {
 $postid intval($postid);
 $post $db->query_first("SELECT * FROM bb".$n."_posts WHERE postid = '$postid'");
$posts=$db->query_first("SELECT COUNT(*) AS p.posts FROM bb".$n."_posts p LEFT JOIN bb".$n."_users u ON (u.userid=p.userid) WHERE u.groupid='1' ");
 if(!$post['postid']) unset($postid);
 else $threadid $post['threadid'];
}


aber genau weiß ich es nicht

__________________
Ein Leben ohne CodeBug's ist ein Leben im Paradies

09.06.14 19:42 Pigsel ist offline E-Mail Finden Als Freund hinzufügen
Schrimm
Banned


Dabei seit: 21.08.11
Beiträge: 700

Antworten Zitieren Editieren Melden       UP

Hallo,

Nein, damit hat dies überhaupt nichts zu tun.
php:
1:
require ("./global.php");

Dieser Teil muss vorhanden sein, um auf Funktionen des wbblite zugreifen zu können.

Liegt also die Datei "ausgabe,php" im Verzeichnis des wbblite, wo beispielsweise eben die "global.php" liegt, kann man das obige dort einfügen.

Tut man dies, kann man sich auch folgende Zeilen sparen:
php:
1:
2:
mysql_connect("***","***","***");
        mysql_select_db("***");
10.06.14 00:58 Schrimm ist offline Finden Als Freund hinzufügen
Seven27
Mitglied


Dabei seit: 21.07.12
Beiträge: 30
Fähigkeiten: WBB Lite 1 Fortgeschritten
Forenversion: Lite 1.0

Themenstarter Thema begonnen von Seven27
Antworten Zitieren Editieren Melden       UP

Oje großes Grinsen

also ich habe nun erneut eine PHP Datei (groupposts.php) erstellt, mit folgendem Inhalt und ohne den ganzen DB Connect kram sondern mit global!
code:
1:
2:
3:
4:
5:
 <?php
$filename="groupposts.php"; 
require("./global.php");  
$posts=$db->query_first("SELECT COUNT(*) AS p.posts FROM bb".$n."_posts p LEFT JOIN bb".$n."_users u ON (u.userid=p.userid) WHERE u.groupid='1' ");
 ?>
Leider kommt weiterhin die Fehlermeldung:
Zitat:
SQL-DATABASE ERROR

Database error in WoltLab Burning Board: Invalid SQL: SELECT COUNT(*) AS p.posts FROM bb1_posts p LEFT JOIN bb1_users u ON (u.userid=p.userid) WHERE u.groupid='1'
mysql error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '.posts FROM bb1_posts p LEFT JOIN bb1_users u ON (u.userid=p.userid) WHERE u.gro' at line 1
mysql error number: 1064
Date: 10.06.2014 @ 15:53
Script: /groupposts.php
Referer:


Ich hab schon überlegt ob es an den Anführungszeichen liegt, da er die Fehlermeldung ja auch nicht ganz ausgiebt.. naja.. irgendwas scheine ich falsch zu machen. Hier noch die Adresse zu der Seite bzw. der Datei / bzw. aktuell zur Fehlermeldung: http://nocturna.bplaced.de/groupposts.php
und die Datei selbst mal als Anhang, wobei da ja nicht wirklich viel drin steht ^^

LG Sev

Dateianhang:
unknown groupposts.php (212 Byte, 1 mal heruntergeladen)

Dieser Beitrag wurde 7 mal editiert, zum letzten Mal von Seven27: 10.06.14 16:03.

10.06.14 15:59 Seven27 ist offline E-Mail Finden Als Freund hinzufügen
Schrimm
Banned


Dabei seit: 21.08.11
Beiträge: 700

Antworten Zitieren Editieren Melden       UP

Hallo,

Tut mir leid, aber im obigen Code habe ich einen Fehler gemacht.

Es muss natürlich so lauten:
php:
1:
$posts=$db->query_first("SELECT COUNT(*) AS posts FROM bb".$n."_posts p LEFT JOIN bb".$n."_threads t ON (t.threadid=p.threadid) LEFT JOIN bb".$n."_users u ON (u.userid=p.userid) WHERE u.groupid='ID' AND t.boardid='ID'");
11.06.14 01:58 Schrimm ist offline Finden Als Freund hinzufügen
Seven27
Mitglied


Dabei seit: 21.07.12
Beiträge: 30
Fähigkeiten: WBB Lite 1 Fortgeschritten
Forenversion: Lite 1.0

Themenstarter Thema begonnen von Seven27
Antworten Zitieren Editieren Melden       UP

Hey Schrimm,

yay, die Fehlermeldung ist zum Glück nun weg. Allerdings zeigt er mir nun eine komplett leere weiße Seite an. Könntest Du mir sagen wie ich da nun eine Zahl ausgeben kann? smile irgendwie stell ich mich da wohl komplett dusselig an. Ich hab das in der Schule diverse Sachen per PHP ausgeben müssen aber da musste es in einer Tabelle ausgegeben werden und ich hatte diverse Angaben großes Grinsen

Nun sieht es dann so aus:
code:
1:
2:
3:
4:
5:
6:
7:
8:
<?php

$filename="groupposts.php";
require("./global.php");
$posts=$db->query_first("SELECT COUNT(*) AS posts FROM bb".$n."_posts p LEFT JOIN bb".$n."_threads t ON (t.threadid=p.threadid) LEFT JOIN bb".$n."_users u ON (u.userid=p.userid) WHERE u.groupid='1' AND t.boardid='1'");

?>
12.06.14 23:24 Seven27 ist offline E-Mail Finden Als Freund hinzufügen
Schrimm
Banned


Dabei seit: 21.08.11
Beiträge: 700

Antworten Zitieren Editieren Melden       UP

Hallo,

Wenn man sich den Aufbau des wbblites ansieht, wird man sofort folgendenes entdecken:
php:
1:
eval("\$tpl->output(\"".$tpl->get("templatename")."\");");

Damit wird eine Datei aufgerufen, die deine Daten enthält und anzeigt.
"Templatename" ist also eine reine "HTML"-Datei, die die Endung "tpl" besitzt, deine Variablen enthält und mittels "php" vervollständigt wird.
13.06.14 15:01 Schrimm ist offline Finden Als Freund hinzufügen
Seven27
Mitglied


Dabei seit: 21.07.12
Beiträge: 30
Fähigkeiten: WBB Lite 1 Fortgeschritten
Forenversion: Lite 1.0

Themenstarter Thema begonnen von Seven27
Antworten Zitieren Editieren Melden       UP

Hey Schrimm,

Du hast natürlich recht, da bin ich irgendwie dusselig gewesen. Vielen Dank für den Hinweis - Oh Gott großes Grinsen großes Grinsen -

So nun hab ich das gemacht, allerding bin ich vermutlich wirklich zu unerfahren mit dem auslesen lassen, ich hab es jetzt über den Echo-Befehl gemacht.
Sieht dann so aus:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
<?php

$filename="groupposts.php";
require("./global.php");
eval("\$tpl->output(\"".$tpl->get("groupposts")."\");");

$posts=$db->query_first("SELECT COUNT(*) AS posts FROM bb".$n."_posts p LEFT JOIN bb".$n."_threads t ON (t.threadid=p.threadid) LEFT JOIN bb".$n."_users u ON (u.userid=p.userid) WHERE u.groupid='1' AND t.boardid='3'");
echo "$posts Userposts aus dem Board mit der Id 1";
echo "$n Userposts aus dem Board mit der Id 1";

?>

Allerdings gibt er mir dann folgendes aus:
code:
1:
2:
Array Userposts aus dem Board mit der Id 1 
1 Userposts aus dem Board mit der Id 1

Ich hab mich ja schon gefreut das er ne Zahl ausgibt großes Grinsen aber in dem Forum sind beispielsweise 3 Posts der Usergruppe 1, irgendwie passt dann da etwas nicht. Ich vermute ich gebe es falsch aus ^^ großes Grinsen deshalb hab ich es dann auch noch mit $posts versucht nur da zeigt er dann ja Array an..

Ich hoffe Du hast noch die Nerven mir nochmal zu antworten, theoretisch müsste es ja eigentlich so funktionieren. Soweit ich weiß stand n = unbekannt oder? n=1?

Ich versuche es echt irgendwie zu verstehen aber irgendwie scheitere ich gerade kläglich^^ Ein Live-Beispiel findest Du dann hier http://nocturna.bplaced.de/groupposts.php
Viele Grüße Sev.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Seven27: 13.06.14 19:25.

13.06.14 19:22 Seven27 ist offline E-Mail Finden Als Freund hinzufügen
Schrimm
Banned


Dabei seit: 21.08.11
Beiträge: 700

Antworten Zitieren Editieren Melden       UP

Wozu brauchst du ein "echo", wenn du ein Template aufrufst?

Wenn überhaupt eine Templateausgabe erfolgen soll und auf die Daten der Datenbank zugreifen soll, muss es so aussehen:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
<?php

$filename="groupposts.php";
require("./global.php");

$posts=$db->query_first("SELECT COUNT(*) AS posts FROM bb".$n."_posts p LEFT JOIN bb".$n."_threads t ON (t.threadid=p.threadid) LEFT JOIN bb".$n."_users u ON (u.userid=p.userid) WHERE u.groupid='1' AND t.boardid='3'");
echo "$posts Userposts aus dem Board mit der Id 1";
echo "$n Userposts aus dem Board mit der Id 1";
eval("\$tpl->output(\"".$tpl->get("groupposts")."\");");

?>

Zugriff auf den Inhalt erhälst du mit: $posts['posts']
$n ist überhaupt sinnlos in diesem Zusammenhang.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Schrimm: 13.06.14 19:39.

13.06.14 19:37 Schrimm ist offline Finden Als Freund hinzufügen
Seven27
Mitglied


Dabei seit: 21.07.12
Beiträge: 30
Fähigkeiten: WBB Lite 1 Fortgeschritten
Forenversion: Lite 1.0

Themenstarter Thema begonnen von Seven27
Antworten Zitieren Editieren Melden       UP

Omg vielen lieben Dank Dir smile

jetzt funktioniert es ! Allerding ohne Anführungszeichen: $posts[posts] !
Wirklich Schrimm danke für Deine Nerven und Hilfe Ehren

Jetzt hab ich nur noch eine Frage, wenn ich in demselben TPL Beiträge (aus Board 1) zweier verschiedener Gruppen zählen lasse, muss ich ja irgendwie definieren das dies Gruppe 1 ist und das Gruppe 2, sonst schreibt er mir ja bei beiden dieselbe Postanzahl hin. Verstehst Du was ich meine?

Hiier die PHP:
code:
1:
2:
3:
$posts=$db->query_first("SELECT COUNT(*) AS posts FROM bb".$n."_posts p LEFT JOIN bb".$n."_threads t ON (t.threadid=p.threadid) LEFT JOIN bb".$n."_users u ON (u.userid=p.userid) WHERE u.groupid='1' AND t.boardid='1'");
$posts=$db->query_first("SELECT COUNT(*) AS posts FROM bb".$n."_posts p LEFT JOIN bb".$n."_threads t ON (t.threadid=p.threadid) LEFT JOIN bb".$n."_users u ON (u.userid=p.userid) WHERE u.groupid='4' AND t.boardid='1'");
eval("\$tpl->output(\"".$tpl->get("groupposts")."\");");

Hier die TPL:
code:
1:
2:
$posts[posts] admin
$posts[posts] user

Ich hatte probiert das irgendwie mit $posts[posts4] oder so zu definieren nur macht das ja nicht viel Sinn wenn es in der PHP gleich bleibt.
Oder muss ich für jede Gruppe nun ne eigene PHP und bzw. tpl Seite erstellen? Fänd ich jetzt etwas merkwürdig, allerdings wenn es anders nicht geht!?
Lg Sev

Dieser Beitrag wurde 7 mal editiert, zum letzten Mal von Seven27: 14.06.14 11:37.

13.06.14 20:02 Seven27 ist offline E-Mail Finden Als Freund hinzufügen
Baumstruktur | Brettstruktur
Gehe zu:

Neues Thema erstellen Antwort erstellen

yourWBB » WoltLab Burning Board Generation 2 * » Alles von und für das WBB Lite 1.0.x » [WBB Lite 1.0.x] Ideen, Wünsche und Suche » Gruppenbeiträge zählen und ausgeben nur wie?