The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
What is wrong with this plugin query?
Code:
$db->query_write("UPDATE " . TABLE_PREFIX . "thread SET open = 0 WHERE threadid = '$threadid' AND votetotal/votenum <= '5'"); If I change it to: Code:
$db->query_write("UPDATE " . TABLE_PREFIX . "thread SET open = 0 WHERE threadid = '$threadid' AND votetotal <= '5'"); |
#2
|
|||
|
|||
Because votetotal/votenum is invalid sql?
|
#3
|
||||
|
||||
@merk
Works just fine for me ... |
#4
|
|||
|
|||
Strange.
May have been a chance in the way MySQL deals with certain syntax then? What version of MySQL flypaper / Kirby? |
#5
|
|||
|
|||
Quote:
edit: And I think I'm using 4.0.25 |
#6
|
||||
|
||||
Well, depends where you run that as a Plugin (eg. which Hook).
I am using an outdated mySQL 4.1.12, but I think that doesn't matter much. |
#7
|
|||
|
|||
oops. Im using 4.1.12 also.
And the hook is threadrate_add. |
#8
|
||||
|
||||
It think the following does happen:
1) The Threadrate Datamager gets the $threadinfo array (which contains open=1) 2) You issue the Query to close the Thread 2) save() is called on the Threadrate Datamanager, After saving, the Datamanager instantiates a Thread Datamanager to update votetotal/votenum using $threadinfo that has passed earlier (containing open=1) Then it writes this to the Database - undoing what your query did. Does that make sense? I'd hook into threaddata_presave and check the rating there, if it's below your limit set open=0. This should work, without any Query overhead. |
#9
|
|||
|
|||
What is the error message? A bit hard to determin the problem without knowing why it "doesnt work".
|
#10
|
|||
|
|||
Quote:
Would that explain the 2nd query I gave in the original post working tho? btw, I will test this tonite for sure... |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|