PHP + SQL Shuffle来自一个表并保存到另一个表

时间:2015-03-20 19:52:25

标签: php mysql sql shuffle

我必须用PHP编写脚本,将播放器ID重新分配,配对并保存到另一个表格。

从第一张桌子我使用简单的SQL查询获得玩家ID:

SELECT id FROM table1

它给了我,例如ID:1,2,3,4,5

的结果

现在我的问题开始了。

我必须将SQL结果改组为例如结果2,5,4,1,3

然后我需要配对玩家ID(在洗牌之后):

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中,如果如下所示:

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

我要找的是:
1.用玩家ID洗牌sql结果的方法 2.将结果与洗牌结果配对的方法
3.将其保存到table2的方法

2 个答案:

答案 0 :(得分:0)

你应该做的是使用shuffle()。它做的是它需要你的阵列和洗牌。然后你可以按顺序使用每个数组。

例如

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];
}

答案 1 :(得分: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 />';
}