Your-pMF
     registrieren     benutzer     suche     team     kalender     hilfe     index    
Chat     downloads     link us     gästebuch     supportforum    
 

Beiträge zählen

original Thema anzeigen

27.06.05, 13:24:11

hama

Hallo Support ;) Mit untenstehendem Code zähle ich die Beiträge im Forum und gebe sie auf der Startseite aus. Nun möchte ich aber ein paar Kategorien nicht mitzählen lassen und kriege das leider alleine nicht hin. Beispiel: Ich möchte id=47, id=49 und id=51 nicht mitzählen lassen. [PHP]// total posts $total_posts = implode('', $_board->fetch_first('SELECT SUM(`posts`) FROM '.$TB_BOARD_FORUM));[/PHP] Irgend so etwas kommt dazu ... [PHP]AS a WHERE p.aid = a.aid AND a.category NOT IN ( 47, 49, 51)'));[/PHP] Ich bekomm dann jeweils ein Durcheinander mit den Verschachtelungen. :rolleyes: Danke schon jetzt für die Hilfe. :)
27.06.05, 21:11:48

BugHunter2k

geändert von: the-tester - 27.06.05, 21:52:02

[php]$_board->fetch_first('SELECT SUM (`posts`) FROM '.$TB_BOARD_FORUM.' WHERE category NOT IN (47, 49, 51)');[/php] sollte eigentlich so funktionieren, hab das jetzt allerdings nicht getestet. [size=65][color=red]edit by the-tester[/color] Ich habe den Code-Tag korrigiert (die ganzen Zeilenvorschübe entfernt), damit der Post nicht 6km breit ist... ;)[/size]
27.06.05, 21:55:07

hama

geändert von: hama - 27.06.05, 21:58:17

Danke, ich glaube, das würde so funktionieren, löst aber, das realisiere ich erst jetzt, mein Problem, das vermutlich ein Berechtigungsproblem ist, nicht. Vielleicht kannst du mir weiterhelfen. Ich versuche es möglichst gut zu schildern: Im Forum werden zuunterst die Beiträge angezeigt (Beispiel "Beiträge: 9982"). Diese Zahl verändert sich, je nach dem mit welchen Rechten ein Benutzer angemeldet ist. Das ist so, weil die SchülerInnen gewisse Lehrerforen nicht sehen können. Wenn sich nun ein Schüler anmeldet, hat er als Anzeige beispielsweise "Beiträge: 9814". Das alles also im Forum. Nun zur Startseite meiner Website. Dort lese ich mit dem in der ersten Nachricht stehenden Code die Anzahl Beiträge aus und publiziere sie dann. Dort steht nun aber immer 9982. Ich könnte nun mit deinem Zusatz gewisse Foren ausklammern, dann würde es für die Schüler stimmen, das heisst für die Schüler wären die beiden Zahlen (Startseite und Forum) gleich, aber für die Lehrer nicht mehr. Also suche ich einen Code, der die Anzahl Beiträge abfragt anhand vom dem, wer angemeldet ist, und muss dann gar keine Foren ausschliessen. Hmm, geht das überhaupt? Einen Schüler-Zugang kann ich dir geben: --> [URL="http://www.orst.ch "]www.orst.ch [/URL] (mit test test auf der linken Seite anmelden und dann die Zahlen vergleichen, die mit dieser Anmeldung nicht übereinstimmen, da mit dieser Anmeldung eben gewisse Foren nicht sichtbar sind)
27.06.05, 21:58:48

BugHunter2k

nim mdoch einfach den code aus der index.php (oder ist es statstic.php ?) da hast du doch ganu das was du möchtest.
27.06.05, 22:06:52

hama

Was mir jetzt grad noch in den Sinn kommt ist, dass Chris das ja bei der Anzahl Beiträge (unten im Forum) so macht. Nicht jeder sieht dort die gleiche Anzahl Beiträge. Nun ginge es eigentlich ja nur darum, diesen Code-Schnipsel im Forum zu finden und meinen Startseite-Code mit diesem zu ergänzen. Tönt so leicht, aber ich kann das nicht ... :(
27.06.05, 22:08:15

hama

Hab grad gemerkt, dass du mir schon geantwortet hast.
27.06.05, 22:21:25

hama

Ich hab das in der index.php gefunden. Bin ich richtig und kann ich da den Bereich topics und forums einfach rausnehmen und das Ganze ein bisschen nur auf posts kürzen? Stimmt get_aviable_boards? Müsste es dort nicht etwas mit available heissen? [PHP]$stat_forum = $_db->fetch_first('SELECT COUNT(f.`id`) AS `forums`, SUM(f.`topics`) AS `topics`, SUM(f.`posts`) AS `posts` FROM `'.$_cfg['DB_PREFIX'].'board` AS f WHERE `id` IN ('.get_aviable_boards('board').')'); $_stat['forums'] = $stat_forum['forums']; $_stat['topics'] = $stat_forum['topics']; $_stat['posts'] = $stat_forum['posts'];[/PHP]
27.06.05, 22:27:11

BugHunter2k

geändert von: BugHunter2k - 27.06.05, 22:27:35

wenn du nur die posts willst, dann sollte das: [php] $stat_forum = $_db->fetch_first('SELECT SUM(f.`posts`) AS `posts` FROM `'.$_cfg['DB_PREFIX'].'board` AS f WHERE `id` IN ('.get_aviable_boards('board').')'); $_stat['posts'] = $stat_forum['posts']; [/php] reichen das mit dem aviable ist wohl nen fehler von chris, die funktion stimmt so.
27.06.05, 22:31:18

hama

Und publizieren tu ich es nachher mit $_stat['posts'] oder $stat_forum ?
27.06.05, 22:33:57

BugHunter2k

$_stat['posts']
27.06.05, 22:44:56

hama

Fatal error: Call to undefined function: get_available_boards() in /home/httpd/vhosts/orst.ch/httpdocs/head.php on line 51 Line 51: [PHP]WHERE `id` IN ('.get_aviable_boards('board').')');[/PHP] Hab's auch mit available probiert. Das muss eine Variable, die er sonst irgendwo definiert hat. :o
27.06.05, 22:51:10

BugHunter2k

da fehlt wahrschienlich dann ein [php] require('mainfile.php'); [php] dort ist die deklariert
27.06.05, 23:01:30

hama

geändert von: hama - 28.06.05, 00:00:08

Kann ich das in meinem head.php, nicht in demjenigen des Forums, so anhängen? Dort steht bis jetzt: ### Includes include('config.inc.php'); include('config.php'); include('functions.php'); Da könnte ich nun als neue Zeile require('mainfile.php'); anhängen. :confused: EDIT: Oder wohl besser so: require('phpmyforum/mainfile.php');
30.06.05, 22:45:31

pip

geändert von: pip - 01.07.05, 08:19:43

deine includes kannste dir alle sparen :D es reicht wenn du head.php (des pmfs) includest, da dort alle anderen daten zusammengetragen werden. also versuchs mal mit: [PHP]
01.07.05, 00:25:42

hama

Ich glaub, die includes muss ich drin lassen, denn das ist die head.php meiner Website und nicht diejenige des Forums. In dieser head.php habe ich die Abfragen drin, unter anderem diejenige für die Anzahl Beiträge (und diese zählt eben nicht richtig, da sie [noch] keine Rücksicht auf den angemeldeten User nimmt). Im left_login.tpl gebe ich die Anzahl dann aus.
 
Powered by: phpMyForum 4.2.1 © Christoph Roeder
SQL Error