The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
||||
|
||||
![]()
Okay... I'm drawing a blank.
I do a query... example: Code:
$qry=$db->query_read("SELECT field1,field2,field3 from vb_xyz WHERE field4='myvalue' and field8='Not_Processed'"); // SET FIELD8 TO PENDING TO STOP OVERLAPPING CRONS while ($result=$db->fetch_array($qry)) { $db->query_write("UPDATE vb_xyz SET field8='Pending' WHERE field1='$result[field1]'"); } // BEGIN PERFORMING ACTIONS, UPDATE DB FOR EACH FIELD ONCE COMPLETE while ($result2=$db->fetch_array($qry)) { // action code here // this is what is not working, "$qry" seems to be "empty" or "finished" } In the first loop, I update a given field to "Pending" status and in the second loop, I actually take action. I can't do this with one loop because I want to make sure that the Pending status is applied to the entire selected $qry before running a process, so no future spawned scripts duplicate what a previously spawned script is already attempting to complete. I know in PHP you can take an array and set the counter back to 0. But, how do I do this with the mysql query and the while clause using fetch_array? If you know of a better way to do what I want to do, Im open for suggestions. Thanks! PS - Above code is for example purposes only and not copied from my actual working code. |
#2
|
||||
|
||||
![]()
In the first loop add a line to store each row in an array, then loop round that array for your second set of processing.
|
#3
|
||||
|
||||
![]()
Ah Ha! Why did I not think of that. Guess when your looking in one direction, sometimes other directions are blind.
I'd still be open to reseting that counter for the $qry if anyone knows how to do that. But, in the mean time... Paul's idea would solve my issue. |
#4
|
||||
|
||||
![]()
Or, better yet, you can use mysql_data_seek();
PHP Code:
|
#5
|
||||
|
||||
![]()
Thank you. That worked perfectly. I think I need a vacation, I should have known that answer.
![]() |
#6
|
|||
|
|||
![]()
I also had trouble with this and your answer helped. Thank you.
|
#7
|
|||
|
|||
![]()
Looking thru the code, I found this function:
PHP Code:
This seems to be doing what the OP requested using the VB coding standards. |
#8
|
||||
|
||||
![]()
Yes, you should use the $db->data_seek() alias for the function, as this keeps the database layer in there, which is needed when vBulletin includes different layers to cater for different database types.
|
![]() |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
![]() |
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|