Seite 1 von 1
Probleme mit neuen PN's
Verfasst: 14.05.2006 06:10
von Chickeweck
Hallo,
ich hab ein neues Forum eingerichtet und Teile der alten Datenbank übernommen, auch die Tabellen für die privaten Nachrichten.
Doch wenn ich jetzt einem Benutzer eine Nachricht schreibe wird diese erst bei dem als neu angezeigt wenn ich im DB-Maintenance-MOD die Option "Prüfe Private Nachrichten-Tabellen" ausgeführt habe.
Nach dieser Prüfung kommt folgende Meldung:
Code: Alles auswählen
Aktualisiere Zähler für ungelesene Private Nachrichten
Aktualisiere Benutzer:
* Aktualisiere Benutzer Flo (2)
Was könnte da nicht stimmen ? Wäre über Antwort sehr dankbar.
Verfasst: 14.05.2006 08:07
von Markus67
Hi ...
was hast du denn alles aus der alten DB übernommen bzw. was nicht?
Markus
Verfasst: 14.05.2006 16:54
von Chickeweck
Übernommen hab ich:
- auth_access
- categories
- forums
- groups
- posts
- posts_text
- privmsgs
- privmsgs_text
- ranks
- topics
- topics_watch
- user_group
- users
- vote_desc
- vote_results
- vote_voters
Joa, das dürfte alles sein was ich übernommen hab.
Es sei vielleicht noch zu erwähnen dass ich den Animated New Message Icon-MOD eingebaut habe, vielleicht könnte es damit zusammenhängen.
Hier die Installationsanleitung.
Verfasst: 14.05.2006 17:12
von Markus67
Hi ...
verlinke mal bitte deine privmsgs.php als txt-Datei.
Markus
Verfasst: 14.05.2006 17:21
von Chickeweck
Verfasst: 14.05.2006 17:31
von Markus67
Hi ...
suche:
Code: Alles auswählen
$sql = "UPDATE " . USERS_TABLE . "
SET user_unread_privmsg = " . $sql . ", user_new_privmsg = 0, user_last_privmsg = " . $userdata['session_start'] . "
WHERE user_id = " . $userdata['user_id'];
ersetze mit:
Code: Alles auswählen
// fix phpbb bug (user_unread_privmsg and user_new_privmsg are unreliable if > 0)
$check_total = $userdata['user_unread_privmsg'] + $userdata['user_new_privmsg'];
if ( $check_total )
{
$sql = "SELECT COUNT(privmsgs_id) AS total
FROM " . PRIVMSGS_TABLE . "
WHERE privmsgs_to_userid = " . $userdata['user_id'] . "
AND privmsgs_type = " . PRIVMSGS_UNREAD_MAIL;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query private message information', '', __LINE__, __FILE__, $sql);
}
$userdata['user_unread_privmsg'] = ( $row = $db->sql_fetchrow($result) ) ? $row['total'] : 0;
$sql = "SELECT COUNT(privmsgs_id) AS total
FROM " . PRIVMSGS_TABLE . "
WHERE privmsgs_to_userid = " . $userdata['user_id'] . "
AND privmsgs_type = " . PRIVMSGS_NEW_MAIL;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query private message information', '', __LINE__, __FILE__, $sql);
}
$userdata['user_new_privmsg'] = ( $row = $db->sql_fetchrow($result) ) ? $row['total'] : 0;
}
$sql = $userdata['user_unread_privmsg'] + $userdata['user_new_privmsg'];
$sql = ( $check_total == $sql ) ? "user_unread_privmsg + user_new_privmsg" : $sql;
$sql = "UPDATE " . USERS_TABLE . "
SET user_unread_privmsg = " . $sql . ", user_new_privmsg = 0, user_last_privmsg = " . $userdata['session_start'] . "
WHERE user_id = " . $userdata['user_id'];
suche:
Code: Alles auswählen
// fix phpbb bug (user_unread_privmsg and user_new_privmsg are unreliable if > 0)
$check_total = $userdata['user_unread_privmsg'] + $userdata['user_new_privmsg'];
if ( $check_total )
{
$sql = "SELECT COUNT(privmsgs_id) AS total
FROM " . PRIVMSGS_TABLE . "
WHERE privmsgs_to_userid = " . $userdata['user_id'] . "
AND privmsgs_type = " . PRIVMSGS_UNREAD_MAIL;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query private message information', '', __LINE__, __FILE__, $sql);
}
$userdata['user_unread_privmsg'] = ( $row = $db->sql_fetchrow($result) ) ? $row['total'] : 0;
$sql = "SELECT COUNT(privmsgs_id) AS total
FROM " . PRIVMSGS_TABLE . "
WHERE privmsgs_to_userid = " . $userdata['user_id'] . "
AND privmsgs_type = " . PRIVMSGS_NEW_MAIL;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query private message information', '', __LINE__, __FILE__, $sql);
}
$userdata['user_new_privmsg'] = ( $row = $db->sql_fetchrow($result) ) ? $row['total'] : 0;
}
$sql = $userdata['user_unread_privmsg'] + $userdata['user_new_privmsg'];
$sql = ( $check_total == $sql ) ? "user_unread_privmsg + user_new_privmsg" : $sql;
$sql = "UPDATE " . USERS_TABLE . "
SET user_unread_privmsg = " . $sql . ", user_new_privmsg = 0, user_last_privmsg = " . $userdata['session_start'] . "
WHERE user_id = " . $userdata['user_id'];
ersetze mit:
Code: Alles auswählen
$sql = "UPDATE " . USERS_TABLE . "
SET user_new_privmsg = user_new_privmsg + 1, user_last_privmsg = " . time() . "
WHERE user_id = " . $to_userdata['user_id'];
Du hast beim Einbau die falsche Stelle erwischt
Markus
Verfasst: 14.05.2006 17:34
von Chickeweck
Ups...das ist jetzt wohl etwas peinlich
Tausend Dank, Markus
