Slick dobrze że umieściłeś ten kawałek. Bo z tego co widze to w modcp.php też jest zmiana postów usera, o czym nie wiedziałem

Może to dlatego żę żadko tam zaglądam....
I z połączenia tych 2 modów powstaje 1, sprawny, szybki i dziąłający:
[phpbb]#-----[ OPEN ]--------
functions_post.php
#-----[ FIND ]--------
$sign = ($mode == 'delete') ? '- 1' : '+ 1';
$forum_update_sql = "forum_posts = forum_posts $sign";
#-----[ REPLACE, WITH ]--------
$forum_update_sql = "forum_posts = forum_posts $sign";
#------[ FIND ]--------------
if ($mode != 'poll_delete')
{
$sql = "UPDATE " . USERS_TABLE . "
SET user_posts = user_posts $sign
WHERE user_id = $user_id";
if (!$db->sql_query($sql, END_TRANSACTION))
{
message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
}
}
#--------[ REPLACE, WITH ]-----------
if ($mode != 'poll_delete' && $mode != 'post_delete')
{
$sql = "UPDATE " . USERS_TABLE . "
SET user_posts = user_posts +1
WHERE user_id = $user_id";
if (!$db->sql_query($sql, END_TRANSACTION))
{
message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
}
}
#-----[ OPEN ]--------
modcp.php
#-----[ DELETE ]-------
$sql = "SELECT poster_id, COUNT(post_id) AS posts
FROM " . POSTS_TABLE . "
WHERE topic_id IN ($topic_id_sql)
GROUP BY poster_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not get poster id information', '', __LINE__, __FILE__, $sql);
}
$count_sql = array();
while ( $row = $db->sql_fetchrow($result) )
{
$count_sql[] = "UPDATE " . USERS_TABLE . "
SET user_posts = user_posts - " . $row['posts'] . "
WHERE user_id = " . $row['poster_id'];
}
$db->sql_freeresult($result);
if ( sizeof($count_sql) )
{
for($i = 0; $i < sizeof($count_sql); $i++)
{
if ( !$db->sql_query($count_sql[$i]) )
{
message_die(GENERAL_ERROR, 'Could not update user post count information', '', __LINE__, __FILE__, $sql);
}
}
}
[/phpbb]
Dlaczego 1-sza część z mojego? Bo przy usówaniu jest generowane o 1 mniej zapytań niż w modzie podanym przez
Slick, gdzie tam jest zapytanie wykonywane z update tego samego rekordu o tą samą wartość..
Jak nie to nie, łaski bez...