Quote:
Originally Posted by insanctus
Code:
ALTER TABLE user ADD `user_album_comments` VARCHAR( 100) NOT NULL
|
actually, it should be
Code:
ALTER TABLE user ADD `user_album_comments` SMALLINT( 9 ) DEFAULT '0' NOT NULL;
it should be number, with default = 0 => new registered members will have this number = 0
Quote:
The only problem is that everyone has to make a comment now to update it... can I use any sql-query to update it from all users?
|
Idea is, you have to export a list of members (array of members ID), says $user[userid]
and for each member, do a querry to count # of comments, assign the value for $comments
SELECT COUNT( * ) AS comments FROM 4images_comments WHERE user_id =$user[userid]
then update the value of this counter
UPDATE user SET user_album_comments=$comments WHERE userid = $userid"
that's only the idea, you should modify and put it in proper form
You should check the "Update counter" or userpost from vB ACP part.
line 191, misc.php
PHP Code:
$users = $DB_site->query("SELECT userid FROM " . TABLE_PREFIX . "user WHERE userid >= $startat AND userid < $finishat ORDER BY userid DESC");
while ($user = $DB_site->fetch_array($users))
{
$totalposts = $DB_site->query_first("
SELECT COUNT(*) AS posts FROM " . TABLE_PREFIX . "post AS post
INNER JOIN " . TABLE_PREFIX . "thread AS thread USING (threadid)
LEFT JOIN " . TABLE_PREFIX . "deletionlog AS deletionlog_t ON (deletionlog_t.primaryid = thread.threadid AND deletionlog_t.type = 'thread')
LEFT JOIN " . TABLE_PREFIX . "deletionlog AS deletionlog_p ON (deletionlog_p.primaryid = post.postid AND deletionlog_p.type = 'post')
WHERE post.userid = $user[userid] AND
thread.forumid IN (0$gotforums) AND
deletionlog_t.primaryid IS NULL AND
deletionlog_p.primaryid IS NULL
");
$DB_site->query("UPDATE " . TABLE_PREFIX . "user SET posts=$totalposts[posts] WHERE userid = $user[userid]");
echo construct_phrase($vbphrase['processing_x'], $user['userid']) . "<br />\n";
flush();
}
MAYBE something like
PHP Code:
$users = $DB_site->query("SELECT userid FROM " . TABLE_PREFIX . "user ORDER BY userid");
while ($user = $DB_site->fetch_array($users))
{
$totalcomments = $DB_site->query_first("
SELECT COUNT(*) AS comments FROM 4images_comments
WHERE user_id = $user[userid] ");
$DB_site->query("UPDATE " . TABLE_PREFIX . "user SET user_album_comments=$totalcomments[comments] WHERE userid = $user[userid]");
echo construct_phrase($vbphrase['processing_x'], $user['userid']) . "<br />\n";
flush();
}