Seite 1 von 1

anzahl versendeter pm's der einzelnen user zählen

Verfasst: 11.04.2005 14:54
von konne
da mein post http://www.phpbb.de/viewtopic.php?t=70874 eventuell wegen des titels oder der anzahl an antworten noch zu keinem befriedigendem ziel führte, hier noch einmal ganz kurz und knapp mein anliegen.

ich möchte gern, dass sobald ein user eine pm verschickt, der wert der spalte user_all_privmsg der tabelle phpbb_users (von mir angelegt) um 1 erhöht wird.

mit diesem wert soll eine statistik möglich werden, welche die 10 am häufigsten pm's sendenden user ausgibt.

weiß leider nicht genau wie und wo ich in der privmsg.php diesen zähler einbauen muss.

Verfasst: 12.04.2005 01:34
von D@ve
Am besten da wo die Nachricht gespeichert wird... irgendwo hinter:

Code: Alles auswählen

$sql = "INSERT $sql_priority INTO " . PRIVMSGS_TABLE . " (privmsgs_type, privmsgs_subject, privmsgs_from_userid, privmsgs_to_userid, privmsgs_date, privmsgs_ip, privmsgs_enable_html, privmsgs_enable_bbcode, privmsgs_enable_smilies, privmsgs_attach_sig)
    VALUES (" . PRIVMSGS_SENT_MAIL . ", '" . str_replace("\'", "''", addslashes($privmsg['privmsgs_subject'])) . "', " . $privmsg['privmsgs_from_userid'] . ", " . $privmsg['privmsgs_to_userid'] . ", " . $privmsg['privmsgs_date'] . ", '" . $privmsg['privmsgs_ip'] . "', " . $privmsg['privmsgs_enable_html'] . ", " . $privmsg['privmsgs_enable_bbcode'] . ", " . $privmsg['privmsgs_enable_smilies'] . ", " .  $privmsg['privmsgs_attach_sig'] . ")";
if ( !$db->sql_query($sql) )
{
    message_die(GENERAL_ERROR, 'Could not insert private message sent info', '', __LINE__, __FILE__, $sql);
}
Am besten machst Du einfach eine Abfrage in der Du alle PNs in der DB zählst und den Wert in die DB schreibst, das hat den Vorteil dass die Werte immer richtig sind, auch wenn zwei PNs gleichzeitig verschickt werden...

GRuß, Dave

Verfasst: 13.04.2005 00:30
von konne
kann man das etwa wie folgt lösen:
(würde ich genau hinter den oben genannten abschnitt postieren)

Code: Alles auswählen

		
                 //
                 //  :: Eigene Änderung :: Start ::
                 //  -> Anzahl der verschickten pm's zählen <-
                 //

		$sql = "SELECT user_all_privmsg  FROM " . USERS_TABLE . "
			WHERE user_id = " . $privmsg['privmsgs_from_userid'] . ";
		if ( !$result = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, 'Could not find oldest privmsgs', '', __LINE__, __FILE__, $sql);
		}
		$user_all_privmsg = $db->sql_fetchrow($result);
		$user_all_privmsg = $user_all_privmsg['privmsgs_id']++;

		$sql = "UPDATE " . USERS_TABLE . "
			SET user_all_privmsg = " . $user_all_privmsg . "
			WHERE user_id = " . $privmsg['privmsgs_from_userid'] . ";
		if ( !$db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, 'Could not update private message read status', '', __LINE__, __FILE__, $sql);
		}

                 //
                 //  -> Anzahl der verschickten pm's zählen <-
                 //  :: Eigene Änderung :: ENDE ::
                 //
hoffe mal, dass ich da nicht ganz so daneben liege, lasse mich aber gerne eines besseren belehren.

Verfasst: 21.04.2005 23:09
von konne
dann werd ich mal eben noch ein letztes mal pushen

da mir scheinbar keiner helfen kann, muss ich das ganze wohl sein lassen