3){ error_log("-3"); return -3; } // Main stats in even slots. // TODO: Check if valid. // TODO: Check if valid per slot $stats = []; foreach ($_POST["stat"] as $x){ array_push($stats, intval($x)); } $source = filter_input(INPUT_POST, 'source'); if ($source == null){ error_log("-4"); return -4; } $tuning = filter_input(INPUT_POST, 'tuning'); if ($tuning == null){ error_log("-5"); return -5; } // Get optimization id and create the view: $optmization_id = $uid . "-" . $unit . "-" . rand(0,1000); $db->query($s); $s = " SELECT * FROM rune WHERE uid = $uid AND set IN ( "; foreach ($sets as $set){ $s .= ($set . ","); } $s .= "-1) AND "; switch ($source){ case 0: // Storage only $s .= "assigned_to IS NULL"; break; case 1: // Units in no teams $s .= " ( assigned_to IS NULL OR assigned_to NOT IN (SELECT DISTINCT unit FROM team_unit) ) "; break; case 2: // Units in teams with 0 score $s .= " ( assigned_to IS NULL OR assigned_to NOT IN (SELECT DISTINCT unit FROM team_unit) OR assigned_to NOT IN ( SELECT DISTINCT unit FROM team, team_unit WHERE team.id = team_unit.team AND team.score > 0 ) ) "; break; case 3: // Units with lower overall score // TODO break; case 4: // All runes - dont filter $s .= " 1 = 1 "; break; default: // Invalid options - return nothing $s .= " 1 = 0 "; } error_log($s); $response = $s; if ($response == null){ return 0; } else{ return $response; } } ?>