07-11-2005, 05:08 AM | #1 (permalink) |
Insane
Location: West Virginia
|
[MySQL / PHP] Freeze a value?
Is there any way to freeze a value in a database without doing a 'hack' in the PHP code. To be specific, I want to lock someone's post count on a certain number on pbpBB forums without messing with the original phpBB code so updates wont erase my code, etc.
__________________
- Artsemis ~~~~~~~~~~~~~~~~~~~~ There are two keys to being the best: 1.) Never tell everything you know |
07-11-2005, 12:22 PM | #2 (permalink) |
Insane
|
Depending on the database in use, you could implement a stored procedure of some sort. I know SQL Server 2000 (Microsoft) and Postgresql can do that. It could be triggered when an insert on a table of your choice happens.
It will check a value (say the user id of the owner of the post in your SQL uery is a certain number) then skip the insert. It might be costly in terms of memory with the database. If the table is huge the query might take a /little/ bit longer than usual. SQL Server 2000: http://www.15seconds.com/issue/000817.htm Postgresql: http://www.postgresql.org/docs/8.0/static/plpgsql.html Two pages of many, many websites dedicated to both servers. Look around. =) That's not to say you couldn't change your PHP code, then run a UNIX/Windows diff (as in difference) utility to create a file that you can merge back into an upgraded phpBB software installation. http://www.gnu.org/software/diffutils/diffutils.html
__________________
"You looked at me as if I was eating runny eggs in slow motion." - Gord Downie of The Tragically Hip Last edited by trache; 07-11-2005 at 12:25 PM.. |
07-18-2005, 04:21 PM | #3 (permalink) |
Crazy
Location: Salt Town, UT
|
Unfortunately, MySQL does not support stored procedures, so there is really no way to lock a post count without modifying the code that updates the post counts.
If it was using postgresql, you would stand a chance, even though the SQL gods would frown on you using a stored procedure to alter the results of an update statement. |
07-19-2005, 09:08 AM | #4 (permalink) |
Insane
Location: West Virginia
|
I may end up putting it in the phpbb code but I really dont want it to execute every time someone posts, even if its just a check on the user id. More of a 'i dont want to keep adding messy code' type of thing
__________________
- Artsemis ~~~~~~~~~~~~~~~~~~~~ There are two keys to being the best: 1.) Never tell everything you know |
07-19-2005, 09:04 PM | #5 (permalink) |
Crazy
Location: Salt Town, UT
|
If you don't care about being exact, you could just have a little task that runs every five minutes or so (out of cron, probably) that would "UPDATE usertable SET postcount = 5000 WHERE postcount > 5000"
I mean, if you ran it every five minutes, the post counts would only be able to go up by five or so (if they were an extremely ACTIVE poster) until you reset it. |
07-29-2005, 06:10 AM | #6 (permalink) |
paranoid
Location: The Netherlands
|
Just out of curiosity: why would you want to lock someones post count?
__________________
"Do not kill. Do not rape. Do not steal. These are principles which every man of every faith can embrace. " - Murphy MacManus (Boondock Saints) |
08-29-2005, 11:50 PM | #7 (permalink) |
Insane
Location: West Virginia
|
Sorry, just saw your reply Silvy!
Its requested by the user. The forums are for an online RPG, the person plays a necromancer and wants their post count locked at 666. I did end up finding a PHPBB plugin to let you freeze users post counts
__________________
- Artsemis ~~~~~~~~~~~~~~~~~~~~ There are two keys to being the best: 1.) Never tell everything you know |
08-30-2005, 01:46 AM | #8 (permalink) | |
paranoid
Location: The Netherlands
|
Quote:
__________________
"Do not kill. Do not rape. Do not steal. These are principles which every man of every faith can embrace. " - Murphy MacManus (Boondock Saints) |
|
Tags |
freeze, mysql, php |
|
|