Mass update
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
<?php
|
||||
|
||||
use Core\Db;
|
||||
|
||||
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||
|
||||
/* CRON Çàâåðøåíèå ïîåäèíêà è óäàëåíèå èç çàÿâîê */
|
||||
|
||||
# Çàïóñê ðàç â ìèíóòó.
|
||||
|
||||
function getIds($query): string
|
||||
{
|
||||
return implode(',', Db::getColumn($query));
|
||||
}
|
||||
|
||||
# HOUR = 1800
|
||||
Db::sql(
|
||||
'update users
|
||||
left join battle on users.battle = battle.id
|
||||
left join battle_logs on battle_logs.id = battle.id
|
||||
set
|
||||
users.battle = 0,
|
||||
battle.team_win = 0,
|
||||
battle.time_over = unix_timestamp()
|
||||
where
|
||||
battle.team_win = -1 and
|
||||
battle.time_start < unix_timestamp() - 1800 * 2 and
|
||||
battle_logs.time < unix_timestamp() - 1800 *2'
|
||||
);
|
||||
|
||||
$bid = Db::getColumn('select id from battle where time_start < unix_timestamp() - 180 and team_win = -1 and typeBattle = 9');
|
||||
foreach ($bid as $item) {
|
||||
$count = Db::getValue('select count(*) from users where battle = ?', [$item]);
|
||||
if ($count < 8) {
|
||||
$timeout = 60;
|
||||
} elseif ($count < 12) {
|
||||
$timeout = 120;
|
||||
} else {
|
||||
$timeout = 180;
|
||||
}
|
||||
Db::sql('update battle set timeout = ? where id = ?', [$timeout, $item]);
|
||||
}
|
||||
unset($bid);
|
||||
Db::sql('delete from battle_cache where time < unix_timestamp() - 3600');
|
||||
|
||||
|
||||
//$bid = getIds('select id from battle where type = 33 and (time_over < unix_timestamp() - 120 or time_over > unix_timestamp() - 360)');
|
||||
|
||||
////äè÷ü, íåâûïîëíèìîå óñëîâèå: `time_over` < "'.(time()-120).'" AND `time_over` > "'.(time() - 360).'" AND `time_over` != 0
|
||||
//// óòî÷íèòü ðåàëèçàöèþ
|
||||
|
||||
//âûòàñêèâàåì ïåðñîâ èç ïðèç õàîòà åñëè çàñòðßëè (1-5 ìèíóò îêîí÷àíèå)
|
||||
//$sp = mysql_fetch_array(mysql_query('SELECT * FROM `battle` WHERE `type` = 33 AND `time_over` < "'.(time()-120).'" AND `time_over` > "'.(time() - 360).'" AND `time_over` != 0 ORDER BY `battle`.`time_over` DESC LIMIT 1'));
|
||||
//if (isset($sp['id']))
|
||||
// {
|
||||
// mysql_query('UPDATE `battle` SET `time_over` = `time_over` - 300 WHERE `id` = "'.$sp['id'].'" LIMIT 1');
|
||||
// $sps = mysql_query('SELECT * FROM `users` WHERE `mail` LIKE "haot@new-combats.com" AND `battle` = 0');
|
||||
// while( $pl = mysql_fetch_array($sps))
|
||||
// {
|
||||
// if (isset($pl['id']))
|
||||
// {
|
||||
// mysql_query('UPDATE `users` SET `inUser` = "0" WHERE `inUser` = "'.$pl['id'].'" LIMIT 1');
|
||||
// mysql_query('DELETE FROM `users` WHERE `id` = "'.$pl['id'].'" LIMIT 1');
|
||||
// mysql_query('DELETE FROM `stats` WHERE `id` = "'.$pl['id'].'" LIMIT 1');
|
||||
// mysql_query('DELETE FROM `items_users` WHERE `uid` = "'.$pl['id'].'" LIMIT 100');
|
||||
// mysql_query('DELETE FROM `eff_users` WHERE `uid` = "'.$pl['id'].'" LIMIT 100');
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
//‚ûòàñêèâàåì ïåðñîâ åñëè çàñòðßëè â áîßõ
|
||||
|
||||
//todo, âñ¸, íè÷åãî íå ñîîáðàæàþ. äîäåëàòü çàïðîñ, ÷òîáû îí ó÷èòûâàë: || !isset($test['id']
|
||||
|
||||
//'update users
|
||||
// left join stats on users.id = stats.id
|
||||
// left join battle on users.id = battle.id
|
||||
//set
|
||||
// users.battle = 0,
|
||||
// stats.battle_yron = 0
|
||||
//where
|
||||
// users.battle > 0 and
|
||||
// battle.time_over between 1 and unix_timestamp() - 600';
|
||||
|
||||
$sps = mysql_query('SELECT * FROM `users` WHERE `battle` > 0');
|
||||
while( $pl = mysql_fetch_array($sps))
|
||||
{
|
||||
if (isset($pl['id']))
|
||||
{
|
||||
$test = mysql_fetch_array(mysql_query('SELECT * FROM `battle` WHERE `id` = "'.$pl['battle'].'" LIMIT 1'));
|
||||
if (($test['time_over'] < (time()-600) && $test['time_over'] !=0) || !isset($test['id']))
|
||||
{
|
||||
mysql_query('UPDATE `users` SET `battle`= 0 WHERE `id` = "'.$pl['id'].'" LIMIT 1');
|
||||
mysql_query('UPDATE `stats` SET `battle_yron` = 0 WHERE `id` = "'.$pl['id'].'" LIMIT 1');
|
||||
}
|
||||
}
|
||||
}
|
||||
//÷èñòèì ïàìßòü
|
||||
unset($sp,$sps,$pl,$test);
|
||||
|
||||
Reference in New Issue
Block a user