Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe Ostern!

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Zweiter Beitragszähler für bestimmte Kategorie + seperates Unterforum?
#1
Hallo liebe MyBB-Gemeinde!

Ich hab jetzt ziemlich lange die Suche und das restliche Google-Universum durchforstet, aber leider bin ich nicht 100% auf die Lösung gekommen, die ich brauche, da oft, wenn das Gleiche gefragt wurde, dann keine Lösung mehr dort gepostet wurde. Rolleyes 
Es geht um Folgendes: Ich hätte gerne im Postbit und im Profil die Beitragszahl aus einer bestimmten Kategorie UND zusätzlich aus einem Unterforum in einer anderen Kategorie seperat ausgegeben. Bisher hab ich es nur so hinbekommen, dass ich alle Foren-IDs, aus denen die Beiträge gezählt werden sollen, einzeln aufliste, das sieht dann in etwa so aus:

PHP-Code:
<?php $uid intval($post['uid']);
$query $db->query("SELECT `uid`,`fid` FROM ".TABLE_PREFIX."posts WHERE uid='"$uid ."' AND fid IN ('55','56','57','58','59','60','61','62','63','64','65','66','67','68','69','70','71','72','73','74','76','77','78','79','80','81','82','83','84','85','86','87','129','135','214','223','227','246','247','267','284','295','298')");
$num_posts $db->num_rows($query);
$db->free_result($query); 
?>

Allerdings finde ich das sehr unübersichtlich und es bedeutet auch in Zukunft mehr Arbeit, da in der einen Kategorie immer wieder mal neue Unterforen hinzukommen. Ich bräuchte jetzt also irgendwas, was sagt "Zähl die Beiträge aus der Kategorie XX und die aus dem Unterforum YY und dessen Unterforen" (denn ich brauche auch die Beiträge aus einem Forum, das nicht in der Kategorie XX steckt. Leider bin ich irgendwie zu blöd, das auf die Reihe zu kriegen, daher wollte ich mal nachfragen, ob da jemand noch einen Ansatz für mich hätte?

Ich wäre sehr dankbar für jeden, der sich meiner Blödheit annimmt! Big Grin
Zitieren
#2
Du kannst es mal so probieren:

PHP-Code:
<?php
    $uid 
intval($post['uid']);
    
$query $db->query("
        SELECT p.uid, p.fid, f.fid, f.parentlist
        FROM "
.TABLE_PREFIX."posts p
        LEFT JOIN "
.TABLE_PREFIX."forums f ON (f.fid = p.fid)
        WHERE p.uid = '"
.$uid."' AND (f.parentlist LIKE 'KAT-ID,%' OR f.parentlist = 'KAT-ID,FORUM-ID,%')
    "
);    
    
$num_posts "";
    
$num_posts $db->num_rows($query);
?>

KAT-ID ist die erste Kategorie.
KAT-ID ist die zweite Kategorie und FORUM-ID das darin enthaltene Unterforum.
Zitieren
#3
Hallöchen, danke erstmal für den Vorschlag <3

Ich hab das mal eben ausprobiert, nur leider scheint das nicht ganz zu funktionieren... Ich hab die Zahl num_posts mal ausgeben lassen und da stimmen die Zahlen komischerweise überhaupt nicht, also da steht teilweise 3 oder z.B. 15, obwohl derjenige mit Sicherheit schon viel mehr Posts in den jeweiligen Foren/Kategorien verfasst hat :/
Zitieren
#4
Wie sieht deine Abfrage denn nun aus? Und wie sieht der Aufbau der Kategorien denn aus, aus denen du die Beiträge zählen lassen willst? Und wie lauten die IDs?
Zitieren
#5
Meine Abfrage sieht jetzt so aus:
PHP-Code:
<?php
    $uid 
intval($post['uid']);
   $query $db->query("
       SELECT p.uid, p.fid, f.fid, f.parentlist
       FROM "
.TABLE_PREFIX."posts p
       LEFT JOIN "
.TABLE_PREFIX."forums f ON (f.fid = p.fid)
       WHERE p.uid = '"
.$uid."' AND (f.parentlist LIKE '6,%' OR f.parentlist = '9,22,%')
   "
);    
   $num_posts 
"";
   $num_posts $db->num_rows($query);
?>

Also die ID 6 ist die Kategorie, aus der ich alle Beiträge zählen will (handelt sich in dem konkreten Fall eben um die Inplay-Kategorie), die ID 9 ist die Archiv-Kategorie und die ID 22 ein Unterforum in dieser Kategorie Nr. 9, aus der ich auch die Beiträge brauche Smile
Zitieren
#6
Eine Frage noch zum Archiv.. wenn du sagst, Archiv-Kategorie heisst das, du hast für das Archiv deines Forums eine eigene Kategorie oder ist das Archiv ein Unterforum in der Kategorie und in diesem Unterforum ist dann wiederum das Inplayarchiv? Weil dann brauchst du hier '9,22,%' noch die übergreifende Kategorie angeben 'KAT-ID,ARCHIV-ID,INPLAY-ARCHIV-ID,%'.
Zitieren
#7
Nee, ich meinte das so, dass es im Forum eine eigene Archiv-Kategorie gibt (eben mit ID 9) und darin ist wiederum ein Unterforum (22) für das Inplay-Archiv, und nur das brauch ich ja, der Rest in der Kategorie ist dafür unwichtig.

Sorry, wenn das blöd ausgedrückt war :'D

EDIT: Ich glaub, ich hab's, HA! Bei "f.parentlist = '9,22,%'" hab ich das = auch durch ein LIKE ersetzt, und jetzt funktioniert's allem Anschein nach Smile Vielen Dank dir!

EDIT 2: Dann fehlt mir das Gleiche jetzt nur noch fürs Profil, da scheitert es bei mir noch an der Anpassung. Ich muss ja "$uid = intval($post['uid']);" durch "$uid = intval($memprofile['uid']);" ersetzen, oder? Aber da muss sicher noch was anderes gemacht werden, denn so bekomme ich momentan noch ne Fehlermeldung ._.
Zitieren
#8
Ähm ja.. wie blöd von mir. Natürlich gehört da auch ein LIKE hin Rolleyes

Wie lautet denn die Fehlermeldung? Denn eigentlich müsste es reichen, aus

PHP-Code:
$uid intval($post['uid']); 

das

PHP-Code:
$uid intval($memprofile['uid']); 

zu machen.

Du kannst es aber auch mal probieren, indem du das direkt in die WHERE-Bedingung schreibst

PHP-Code:
WHERE p.uid '".$memprofile['uid']."' 

und die "$uid ="-Zeile löschst.
Zitieren
#9
Ich hab jetzt beides ausprobiert, kriege aber in beiden Fällen die gleiche Fehlermeldung im Profil, die lautet so:

Zitat:MyBB has experienced an internal error and cannot continue.

Error Type:
Catchable Fatal Error (4096)

Error Message:
Object of class mysqli_result could not be converted to string

Location:
File: member.php(2744) : eval()'d code(4) : eval()'d code(2) : eval()'d code
Line: 46

Blank_look

EDIT: Ah Moment, ich glaub, das war ein blöder Fehler von mir! Ich hatte da noch was mit drin, was ich vorher ausprobiert hatte. Hab das rausgelöscht und jetzt funktioniert's auch im Profil. Also nochmal ganz vielen lieben Dank für deine Hilfe! <3
Zitieren
#10
Hallo! :3

ich weiß der Thread ist schon relativ alt, aber habt ihr evtl eine Lösung gefunden, die dieselbe Abfrage auch in die Memberlist integrieren lässt? wenn ich daraus

Code:
$uid = intval($user['uid']);


mache wird mir nur noch ein User in der Memberlist angezeigt, also bin ich etwas überfragt..
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Zusätzlichen Beitragszähler Prophet 10 3.629 11.03.2014, 13:42
Letzter Beitrag: Ciddy
  Spezieller Nutzernamen/Avatar für bestimmtes Unterforum bigfraggle 2 4.022 21.09.2011, 13:20
Letzter Beitrag: bigfraggle
  Beitragszähler andreaswien 10 3.185 05.05.2010, 12:03
Letzter Beitrag: andreaswien
  2. Beitragszähler und Benutzertitel e-mike 2 1.630 16.04.2008, 18:59
Letzter Beitrag: e-mike
Question Ein weiterer Beitragszähler? Chickadee 2 1.797 13.03.2006, 13:08
Letzter Beitrag: Chickadee