now() OR `n`.`expire` IS NULL) ) >= 100'; $query = mysql_query($sql); if (!$query) { return false; } // Challenge has been passed and non-expired points >= 100 // Reset flag if requirements are not met // // Also a bit performance critical but assurer flag is only set on // ~5k accounts $sql = ' UPDATE `users` AS `u` SET `assurer` = 0 WHERE '.( ($userID === NULL) ? '`u`.`assurer` <> 0' : '`u`.`id` = \''.intval($userID).'\'' ).' AND ( NOT EXISTS( SELECT 1 FROM `cats_passed` AS `cp`, `cats_variant` AS `cv` WHERE `cp`.`variant_id` = `cv`.`id` AND `cv`.`type_id` = 1 AND `cp`.`user_id` = `u`.`id` ) OR ( SELECT SUM(`points`) FROM `notary` AS `n` WHERE `n`.`to` = `u`.`id` AND ( `n`.`expire` > now() OR `n`.`expire` IS NULL ) ) < 100 )'; $query = mysql_query($sql); if (!$query) { return false; } return true; }