refactor: setMovementProc() to take one or multiple IDs for update

This commit is contained in:
Martin Ambrus
2017-11-08 18:21:30 +01:00
parent 21d6874325
commit 151553735d
2 changed files with 10 additions and 3 deletions
+6 -1
View File
@@ -982,14 +982,19 @@ class Automation {
} }
$q1 = "SELECT send, moveid, `to`, wood, clay, iron, crop, `from` FROM ".TB_PREFIX."movement WHERE proc = 0 and sort_type = 2 and endtime < $time"; $q1 = "SELECT send, moveid, `to`, wood, clay, iron, crop, `from` FROM ".TB_PREFIX."movement WHERE proc = 0 and sort_type = 2 and endtime < $time";
$dataarray1 = $database->query_return($q1); $dataarray1 = $database->query_return($q1);
$completedIDs = [];
foreach($dataarray1 as $data1) { foreach($dataarray1 as $data1) {
$database->setMovementProc($data1['moveid']); $completedIDs[] = $data1['moveid'];
if($data1['send'] > 1){ if($data1['send'] > 1){
$targettribe1 = $tribes[$data1['to']]; $targettribe1 = $tribes[$data1['to']];
$send = $data1['send']-1; $send = $data1['send']-1;
$this->sendResource2($data1['wood'],$data1['clay'],$data1['iron'],$data1['crop'],$data1['to'],$data1['from'],$targettribe1,$send); $this->sendResource2($data1['wood'],$data1['clay'],$data1['iron'],$data1['crop'],$data1['to'],$data1['from'],$targettribe1,$send);
} }
} }
// updated processed records
$database->setMovementProc(implode(', ', $completedIDs));
if(file_exists("GameEngine/Prevention/market.txt")) { if(file_exists("GameEngine/Prevention/market.txt")) {
unlink("GameEngine/Prevention/market.txt"); unlink("GameEngine/Prevention/market.txt");
} }
+4 -2
View File
@@ -3562,9 +3562,11 @@ class MYSQLi_DB implements IDbConnection {
} }
function setMovementProc($moveid) { function setMovementProc($moveid) {
list($moveid) = $this->escape_input((int) $moveid); if (!Math::isInt($moveid)) {
list($moveid) = $this->escape_input($moveid);
}
$q = "UPDATE " . TB_PREFIX . "movement set proc = 1 where moveid = $moveid"; $q = "UPDATE " . TB_PREFIX . "movement set proc = 1 where moveid IN($moveid)";
return mysqli_query($this->dblink,$q); return mysqli_query($this->dblink,$q);
} }