phpBB: Total Posts aller Admins auslesen?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Coupling

phpBB: Total Posts aller Admins auslesen?

Beitrag 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 :)
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag 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.
Coupling

Beitrag 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
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Antworten

Zurück zu „Coding & Technik“