PDA

View Full Version : Update $post['rank']


DaveNGU
04-09-2013, 12:16 PM
How could I update a user's $post['rank'] with a file which is outside the /forums directory?

Basically we'd like to have a page where users can change their $post['rank'], but as I said the file is going to be outside of the /forums directory and not in plugins.

Thanks.

kh99
04-09-2013, 12:49 PM
You could update the user's rank field in the usertextfield table, but the rank gets recalculated whenever any user data is updated, so it's not meant to be set to an aribitrary value.

DaveNGU
04-10-2013, 08:53 AM
You could update the user's rank field in the usertextfield table, but the rank gets recalculated whenever any user data is updated, so it's not meant to be set to an aribitrary value.

How would I do this? :p

--------------- Added 1365602699 at 1365602699 ---------------

You could update the user's rank field in the usertextfield table, but the rank gets recalculated whenever any user data is updated, so it's not meant to be set to an aribitrary value.


$ranks = $vbulletin->db->query_first("
SELECT rank
FROM ".$schema.".".$db_prefix."usertextfield
WHERE username = 'Jake'
");


I've put the username in there as a test.. but this is giving me: MySQL Error : Unknown column 'username' in 'where clause'

Is their username not stored in this table?

kh99
04-10-2013, 07:47 PM
You'd have to connect to the database. You can write a script that chdir()s to the forum directory then includes global.php, then you can use $vbulletin->db, or you could use the php mysql functions to go directly to the database (but you need the connection info from config.php).



$ranks = $vbulletin->db->query_first("
SELECT rank
FROM ".$schema.".".$db_prefix."usertextfield
WHERE username = 'Jake'
");


I've put the username in there as a test.. but this is giving me: MySQL Error : Unknown column 'username' in 'where clause'

Is their username not stored in this table?

It's not, only the userid is there. But if you only have the username you could do this:

$ranks = $vbulletin->db->query_first("
SELECT rank
FROM ".$schema.".".$db_prefix."usertextfield AS usertextfield
LEFT JOIN ".$schema.".".$db_prefix."user AS user ON (user.userid = usertextfield.userid)
WHERE username = 'Jake'
");

DaveNGU
04-11-2013, 09:44 AM
You'd have to connect to the database. You can write a script that chdir()s to the forum directory then includes global.php, then you can use $vbulletin->db, or you could use the php mysql functions to go directly to the database (but you need the connection info from config.php).



It's not, only the userid is there. But if you only have the username you could do this:

$ranks = $vbulletin->db->query_first("
SELECT rank
FROM ".$schema.".".$db_prefix."usertextfield AS usertextfield
LEFT JOIN ".$schema.".".$db_prefix."user AS user ON (user.userid = usertextfield.userid)
WHERE username = 'Jake'
");


Got you. I've managed to update it as well, so this seems to be working fine :D.

Will report back if need be, thanks for your help.