Seite 1 von 1
anzahl der beiträge aus einem bestimmten forum anzeigen lass
Verfasst: 27.07.2007 14:34
von kolja
moin forum
ich würde gerne die anzahl der posts die unsere user im spamforum schreiben gesondert darstellen:
Beirtäge: 66
davon Spam: 61
so soll es in der viewtopic geschrieben stehen
nur wie finde ich die anzahl der post herraus ??
danke für die hilfe
kolja
Verfasst: 27.07.2007 14:38
von Dr.Death
Dazu müsste jedes Posting in der Tabelle mit einem extra Flag gekennzeichnet werden.... Spam ja / Nein.
Dieses Flag könnte man dann bei der Ausgabe ja auswerten....
...aber wer entscheidet ob das Flag gesetzt werden soll ?
Verfasst: 27.07.2007 14:45
von kolja
whow schnell
ob die flag (was das auch immer sein mag) gesetzt wird entscheidet die foren_id
es geht mir um diese forenspiele wie:
worketten, was hast du heute gefrühstückt usw...
die habe ich alle in ein spam-thread forum geschoben
aber was ist ein flag ??
Verfasst: 27.07.2007 15:08
von Dr.Death
Flag = Flagge
Ein Flag ist eine "Markierung"....
Achso, die "Spam Beiträge" sind also alle Beitrag in einem Forum.
Dann müsste man ja nur ein SQL Statement zusammen basten, welches alle Beiträge zählt, die nur in diesem Forum vorkommen.
Beispiel : Forum ID 10 ist Dein SPAM Forum -->
Code: Alles auswählen
SELECT count(post_id) as spams FROM `phpbb_posts` WHERE forum_id = 10
Das Result enthält nun die Variable "spams" mit der betroffenen Anzahl der Postings aus diesem Forum.
Verfasst: 27.07.2007 15:32
von kolja
da fehlt aber noch der user...
Code: Alles auswählen
SELECT count(post_id) as spams FROM `phpbb_posts` WHERE forum_id = 10 AND user_id = 32
oder ??
Verfasst: 28.07.2007 01:21
von gn#36
Ja.
Wenn mir eine SQL Anweisung zu kompliziert wird dann probiere ich sie einfach mal an einem möglichst einfachen Beispiel aus und schaue ob das richtige rauskommt... In dem Fall z.b. an einem User der eine überschaubare Anzahl gepostet hat.
Alternativ könntest du dir - je nach dem wofür du es brauchst - auch gleich eine Liste für alle User ausgeben lassen:
Code: Alles auswählen
SELECT poster_id, count(post_id) as spams FROM `phpbb_posts` WHERE forum_id = 10 GROUP BY poster_id
Ach ja, wenn ich mich nicht irre dann ist das in der Tabelle nicht die user_id sondern die poster_id...
Verfasst: 28.07.2007 17:29
von kolja
also die abfrage stimmt!
ich bekomme (in phpmyadmin) poster_id und die anzahl der posts im spamforum
nur schaffe ich es nicht die abfrage mit php zu machen...
und bei anderen abfragen abschauen hat auch nicht geklappt
gibt es dafür vielleicht eine allgemeine erklärung hier im forum ?
so wie die erklärungen für das templatesystem !
kolja
Verfasst: 28.07.2007 18:08
von gn#36
Eigentlich ist das so wie bei den anderen Abfragen auch:
Code: Alles auswählen
$result = $db->sql_query($sql) or message_die(GENERAL_ERROR,'Fehlschlag','',__LINE__,__FILE__,$sql);
while($row = $db->sql_fetchrow($result))
{
echo $row['poster_id'] . ' '.$row['spams'] . '<br>';
}
Verfasst: 28.07.2007 18:23
von kolja
so hatte ich code auch schon, nur ohne die fehlermeldung..
nur wird echo dort irgendwie nicht ausgegeben
und ausserdem brauch ich ja immer nur die anzahl der post von: $postrow[$i]['user_id']
oder frage ich einmal alle ab, und weise dann immer aus dem speicher zu??
kolja
Verfasst: 29.07.2007 00:14
von gn#36
Pro Schleifendurchlauf eine Abfrage halte ich für ungünstig, alle User abfragen wenn nur einer gebraucht wird ist auch nicht unbedingt so ganz doll, da schon lieber ein Durchlauf pro Schleife. Ich dachte du wolltest das ganze irgendwo anders darstellen, daher mein Vorschlag, wenn du das in den Posts darstellen willst dann solltest du das natürlich besser mit der poster_id in der WHERE Abfrage machen. Optimal wäre es natürlich das direkt mit in die Abfrage für die Posts mit einzuarbeiten, aber da fällt mir auf Anhieb keine sichere Methode ein das zu kombinieren. Man könnte es natürlich mal mit einem LEFT JOIN auf die posts Tabelle probieren, aber so wie ich mir das im Moment vorstelle bin ich mir nicht sicher dass es klappt, daher werde ich es auch nicht posten. Dass da allerdings beim Echo nichts rauskommen soll kann ich mir nicht vorstellen, das kann eigentlich nur ein Tippfehler sein, zumindest vom Count muss ja mindestens eine 0 kommen (oder es sind keine Datensätze vorhanden was ja auch nicht sein kann solange es mindestens einen Post gibt).