MySQL — PHP + SQL перемешать результаты из одной таблицы и сохранить в другой

Я должен написать скрипт на PHP, который перетасовывает идентификаторы игроков, объединяет их в пару и сохраняет на другой стол.

Из первой таблицы я получаю идентификаторы игроков, используя простой SQL-запрос:

SELECT id FROM table1

Это дает мне, например, результат с идентификаторами: 1, 2, 3, 4, 5

Теперь моя проблема начинается.

Я должен перетасовать результат SQL, чтобы получить, например. результат 2, 5, 4, 1, 3

Затем мне нужно соединить идентификаторы игроков (после тасования) следующим образом:

first row - first player with second player
second row - second player with third player
third row - third player with fourth player
fourth row - fourth player with fifth player
fifth row - fifth player with first player

В SQL table2 if должен выглядеть так:

2-5
5-4
4-1
1-3
3-2

Что я ищу это:
1. Способ перемешать результат с идентификатором игрока
2. Способ объединения результатов из перемешанного результата
3. Способ сохранить его в table2

-1

Решение

Что вы должны сделать, это использовать shffle (). Что он делает, так это берет ваш массив и тасует его. тогда вы можете просто использовать каждый массив по порядку.

пример

array1
[1]
[2]
[3]
[4]

array2
[1]
[2]
[3]
[4]

$array3 = shuffle($array2);

array3
[2]
[1]
[4]
[3]

затем перебрать их

for($i=0;$i<4;i++){
echo $array1[$i] .' vs '. $array3[$i];
}
0

Другие решения

Хорошо, так что я узнал:

$result=mysql_query("SELECT id FROM table1");

$numbers=array();

while ($result_data = mysql_fetch_row($result))
{
array_push($numbers, $result_data[0]);
}

shuffle($numbers);
$numbers2 = $numbers;
array_unshift( $numbers2, array_pop( $numbers2 ) );for($i=0;$i<count($numbers);$i++){
echo $numbers2[$i].' vs '.$numbers[$i] . '<br />';
}
0

По вопросам рекламы [email protected]