Seite 1 von 1

phpBB: Total Posts aller Admins auslesen?

Verfasst: 11.10.2002 20:35
von Coupling
Hi,
ist es möglich mit einem sql query die total posts aller Admins (Zurzeit sinds bei mir 4 ) auszulesen?Bei den normalen Usern gehts ja einfach mit get_db_stat('postcount') geht das irgendwie auch bei den Admins?

Greetz Coupling :)

Verfasst: 11.10.2002 21:02
von Pyramide
Alle zusammen:

Code: Alles auswählen

SELECT count(post_id)
FROM phpbb_posts p, phpbb_users u
WHERE p.poster_id = u.user_id
AND u.user_level=1
Jeder einzeln:

Code: Alles auswählen

SELECT u.username, count(p.post_id)
FROM phpbb_posts p, phpbb_users u
WHERE p.poster_id = u.user_id
AND u.user_level=1
GROUP BY u.user_id
Wenn du das in´s phpBB integrieren willst, solltest du anstatt der Tabellennamen z.B. USERS_TABLE und anstatt der 1(user level) ADMIN verwenden.

Verfasst: 11.10.2002 22:56
von Coupling
Hi,
irgendwie bekomme ich das net hin :( Ich brauche das ganze für ein Statistik Modul was ich gerade versuche zu coden das ganze soll mir die Top 10 der Administratoren nach Posts ausgeben nur leider stimmt die Prozentangabe nicht!Hier mal der unveränderte Code:

Code: Alles auswählen

//
// Top posters SQL
//
$sql = "SELECT user_id, username, user_posts
FROM " . USERS_TABLE . "
WHERE user_level = " . ADMIN . "
AND user_posts > 0
ORDER BY user_posts DESC
LIMIT " . $return_limit;

if (!$result = $db->sql_query($sql))
{
        message_die(GENERAL_ERROR, "Couldn't retrieve users data", "", __LINE__, __FILE__, $sql);
}

$user_count = $db->sql_numrows($result);
$user_data = $db->sql_fetchrowset($result);
$percentage = 0;
$bar_percent = 0;

$firstcount = $user_data[0]['user_posts'];

for ($i = 0; $i < $user_count; $i++)
{
        do_math($firstcount, $user_data[$i]['user_posts'], get_db_stat('postcount'), $percentage, $bar_percent);

        $template->assign_block_vars("topadmins", array(
        "RANK" => $i+1,
        "CLASS" => ( !($i+1 % 2) ) ? $theme['td_class2'] : $theme['td_class1'],
        "USERNAME" => $user_data[$i]['username'],
        "PERCENTAGE" => $percentage,
        "BAR" => $bar_percent,
        "URL" => $phpbb_root_path . "profile.php?mode=viewprofile&u=" . $user_data[$i]['user_id'],
        "POSTS" => $user_data[$i]['user_posts'])
        );
}
Ich habe mal versucht deinen Vorschlag in das script einzubauen:

Code: Alles auswählen

$sql = "SELECT count(post_id)
FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u
WHERE p.poster_id = u.user_id
AND u.user_level <> " . ADMIN . "";

if (!$result = $db->sql_query($sql))
{
        message_die(GENERAL_ERROR, "Couldn't retrieve users data", "", __LINE__, __FILE__, $sql);
}
while ( $row = $db->sql_fetchrow($result) )
                        {
//
// Top posters SQL
//
$sql = "SELECT user_id, username, user_posts
FROM " . USERS_TABLE . "
WHERE user_level = " . ADMIN . "
AND user_posts > 0
ORDER BY user_posts DESC
LIMIT " . $return_limit;

if (!$result = $db->sql_query($sql))
{
        message_die(GENERAL_ERROR, "Couldn't retrieve users data", "", __LINE__, __FILE__, $sql);
}

$user_count = $db->sql_numrows($result);
$postadmincount = $row['post_id'];
$user_data = $db->sql_fetchrowset($result);
$percentage = 0;
$bar_percent = 0;

$firstcount = $user_data[0]['user_posts'];

for ($i = 0; $i < $user_count; $i++)
{
        do_math($firstcount, $user_data[$i]['user_posts'], $postadmincount, $percentage, $bar_percent);

        $template->assign_block_vars("topadmins", array(
        "RANK" => $i+1,
        "CLASS" => ( !($i+1 % 2) ) ? $theme['td_class2'] : $theme['td_class1'],
        "USERNAME" => $user_data[$i]['username'],
        "PERCENTAGE" => $percentage,
        "BAR" => $bar_percent,
        "URL" => $phpbb_root_path . "profile.php?mode=viewprofile&u=" . $user_data[$i]['user_id'],
        "POSTS" => $user_data[$i]['user_posts'])
        );
}
}
aber jetzt wird bei Prozent nur noch "0%" angezeigt!
Hast du vileicht ne idee wie ich das lösen kann?

Gruß Coupling

Verfasst: 12.10.2002 10:02
von Acid