[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Случайное распределение групп
blade
Делаю руспределение игроков по группам

Вот код:


if ( !empty($_POST["start_chliga"]) ) :

// Формировка строк
$ArrayListUser = array();
$ArrayListTeam = array();

$i = 1;

// Получаем список турниров для запуска ЛЧ
$SqlListTurnir = "SELECT `id` FROM `turnir` WHERE `tipo` = 'championship' AND `maxusers` = '16' AND `status` = '3' ORDER BY `id` DESC LIMIT 4";

$MysqlListTurnir = mysql_query($SqlListTurnir);

while( $ListTurnir = mysql_fetch_row($MysqlListTurnir) )
{
// Формируем запрос на вытягивание пользователей
$SqlListUser = "SELECT `username`, `team` FROM `turnirs` WHERE `turnirs` = '".$ListTurnir[0]."' AND `poputka` = '3' ORDER BY summa DESC, games ASC, zabil DESC, propustil ASC LIMIT 0, 8";

$MysqlListUser = mysql_query($SqlListUser);

while( $ListUser = mysql_fetch_row($MysqlListUser) )
{
$ArrayListUser[$i] = $ListUser[0];
$ArrayListTeam[$i] = $ListUser[1];

$i++;
}
}


// Открываем кубок
$SqlStart = "INSERT INTO `turnir` (`id`, `name`, `title`, `date`, `maxusers`, `img`, `status`, `win_mest`, `1mesto`, `2mesto`, `3mesto`, `4mesto`, `5mesto`, `stage`, `matchs`, `all_reit`, `info`, `tipo`, `razdel`) VALUES (NULL, 'Лига Чемпионов', 'Champions League', '".time()."', 32, '/turnir/Champions League.jpg', 2, 2, 400, 200, 0, 0, 0, 'groupe', 2, 600, 'За неактивность в течении 24 часов - Замена и БАН на месяц', 'league', 'others')";
$Start = mysql_query($SqlStart);

$LastId = mysql_insert_id();

// Создаем цикл по кругу
for ($a = 1; $a <= sizeof($ArrayListUser); $a++)
{
// Проверяем сколько игроков и в какой группе
$SelectOne = "SELECT * FROM
(SELECT COUNT(id) AS A FROM turnirs WHERE `turnirs` = '"
.$LastId."' AND `poputka` = '1' AND `groupe` = 'A') AS A,
(SELECT COUNT(id) AS B FROM turnirs WHERE `turnirs` = '"
.$LastId."' AND `poputka` = '1' AND `groupe` = 'B') AS B,
(SELECT COUNT(id) AS C FROM turnirs WHERE `turnirs` = '"
.$LastId."' AND `poputka` = '1' AND `groupe` = 'C') AS C,
(SELECT COUNT(id) AS D FROM turnirs WHERE `turnirs` = '"
.$LastId."' AND `poputka` = '1' AND `groupe` = 'D') AS D,
(SELECT COUNT(id) AS E FROM turnirs WHERE `turnirs` = '"
.$LastId."' AND `poputka` = '1' AND `groupe` = 'E') AS E,
(SELECT COUNT(id) AS F FROM turnirs WHERE `turnirs` = '"
.$LastId."' AND `poputka` = '1' AND `groupe` = 'F') AS F,
(SELECT COUNT(id) AS G FROM turnirs WHERE `turnirs` = '"
.$LastId."' AND `poputka` = '1' AND `groupe` = 'G') AS G,
(SELECT COUNT(id) AS H FROM turnirs WHERE `turnirs` = '"
.$LastId."' AND `poputka` = '1' AND `groupe` = 'H') AS H
"
;
$Mysql_One = mysql_query($SelectOne);
$OneM = mysql_fetch_assoc($Mysql_One);

$One["A"] = $OneM["A"];
$One["B"] = $OneM["B"];
$One["C"] = $OneM["C"];
$One["D"] = $OneM["D"];
$One["E"] = $OneM["E"];
$One["F"] = $OneM["F"];
$One["G"] = $OneM["G"];
$One["H"] = $OneM["H"];

// Группы все
$ARRAY_NUW = array('0' => 'A', '1' => 'B', '2' => 'C', '3' => 'D', '4' => 'E', '5' => 'F', '6' => 'G', '7' => 'H');

if ( $One["A"] == 4 ) :

// Удаляем группу из цикла
if ( $key = array_search("A", $ARRAY_NUW) ) unset($ARRAY_NUW[$key]);

endif;

if ( $One["B"] == 4 ) :

// Удаляем группу из цикла
if ( $key = array_search("B", $ARRAY_NUW) ) unset($ARRAY_NUW[$key]);

endif;

if ( $One["C"] == 4 ) :

// Удаляем группу из цикла
if ( $key = array_search("C", $ARRAY_NUW) ) unset($ARRAY_NUW[$key]);

endif;

if ( $One["D"] == 4 ) :

// Удаляем группу из цикла
if ( $key = array_search("D", $ARRAY_NUW) ) unset($ARRAY_NUW[$key]);

endif;

if ( $One["E"] == 4 ) :

// Удаляем группу из цикла
if ( $key = array_search("E", $ARRAY_NUW) ) unset($ARRAY_NUW[$key]);

endif;

if ( $One["F"] == 4 ) :

// Удаляем группу из цикла
if ( $key = array_search("F", $ARRAY_NUW) ) unset($ARRAY_NUW[$key]);

endif;

if ( $One["G"] == 4 ) :

// Удаляем группу из цикла
if ( $key = array_search("G", $ARRAY_NUW) ) unset($ARRAY_NUW[$key]);

endif;

if ( $One["H"] == 4 ) :

// Удаляем группу из цикла
if ( $key = array_search("H", $ARRAY_NUW) ) unset($ARRAY_NUW[$key]);

endif;

$ARRAY_NUW = array_values($ARRAY_NUW);
$CountArray = sizeof($ARRAY_NUW) - 1;
$RAND_NUM = rand(0, $CountArray);

$GROUPE = $ARRAY_NUW[$RAND_NUM];

// Регестрируем в турнир
$MQU = mysql_query("INSERT INTO turnirs (username, turnirs, team, poputka, groupe) VALUES ('".$ArrayListUser[$a]."', '".$LastId."', '".$ArrayListTeam[$a]."', '1', '".$GROUPE."')");
}

echo '<script>window.location.href = "?page=turnirs&id='.$LastId.'";</script>';
exit();

endif;


Сыть в том что группа пользователю достается случайно и в каждой группе должно быть не более 4 игроков, но вот что то не так постоянно получается что в одной из групп пользователей больше чем в других.

Подскажите что я делаю не так ?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.