Einzelnen Beitrag anzeigen

Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: phpBB Users-Posts nachzählen

  Alt 29. Aug 2006, 10:19
Jenau. Du tust dich leichter, wenn du dies in mehreren Queries machst. Hier mal ein Code zum Einbau in ein ACP-Modul:
Code:
$sql = 'SELECT poster_id, count(post_id) as post_count
        FROM '. POSTS_TABLE .'
        WHERE poster_id > 0 
        GROUP BY poster_id';
if (!($result = $db->sql_query($sql)))
{
   message_die(GENERAL_ERROR, 'Could not query posts table', '', __LINE__, __FILE__, $sql);
}
while ($row = $db->sql_fetchrow($result))
{
   $sql = 'UPDATE '. USERS_TABLE .'
           SET user_posts = '. $row['post_count'] .'
           WHERE user_id = '. $row['poster_id'];
   if (!$db->sql_query($sql))
   {
      message_die(GENERAL_ERROR, 'Could not update user table', '', __LINE__, __FILE__, $sql);
   }
}
$db->sql_freeresult($result);
Der Code kann bei einem groesseren Forum schon mal laenger laufen. Deshalb gibt es verschiedene Scripte, die das Ganze als ACP-Modul implementieren. Da gibts dann einen Batch-Mode, so dass man bei einem eventuellen Abbruch nicht von ganz vorne anfangen muss, sondern in der Mitte anfangen kann.

Bezueglich der beiden Beitragstabellen: die Infos sind geteilt. Die Daten, die man oft benoetigt, sind in phpbb_posts, waehrend Text und BBCode-UID in phpbb_posts_text liegt. Ob das wirklich Vorteile bringt, sei dahingestellt, es ist aber nunmal so gemacht

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat