-1

テーブルプレーヤー

プレイヤー1

プレイヤー2

プレイヤー3

プレイヤー4

プレイヤー5

...

プレイヤー100

1 つのベースと 3 つのピボットとして、4 人のプレーヤーを持つ 10 の一意のランダム チームを選択する必要があります。

現在使用しようとしています:

    require_once "connect_to_mysql.php"; 
    $sqlCommand = "SELECT id FROM players ORDER BY RAND() LIMIT 10"; 
    $query = mysql_query($sqlCommand) or die (mysql_error()); 
    $i =1;
    while ($row = mysql_fetch_array($query)) { 
        echo "$i Base  = ";
        echo $row['id'];
        echo "<br />";  
        echo 'Pivot';   
        echo "<br />";
        if ($i % 4 == 0)
     {
       echo '<br />';
     }
     $i++;
    } 
    mysql_close();

結果は次のとおりです。

**team 1**
Base 1
Pivot 1
Pivot 2
Pivot 3

**team 2**
Base 1
Pivot 1
Pivot 2
Pivot 3

**team 3**
Base 1
Pivot 1
Pivot 2
Pivot 3

**team 4**
Base 1
Pivot 1
Pivot 2
Pivot 3

**team 5**
Base 1
Pivot 1
Pivot 2
Pivot 3

**team 6**
Base 1
Pivot 1
Pivot 2
Pivot 3
4

2 に答える 2

0

このために複数のクエリを実行すると、チームが重複する可能性があります。40 人のランダムなプレイヤーを選択してチームに配布する単一のクエリですべてを実行する必要があります。

$nteams=$_POST['teams']; 
$nbase=$_POST['base'];
$npivots=$_POST['pivots']; 
$allplayers=$nteams*($nbase+$npivots);
require_once "connect_to_mysql.php"; 
$sqlCommand = "SELECT id FROM players ORDER BY RAND() LIMIT $allplayers";
$query = mysql_query($sqlCommand) or die (mysql_error()); 
if(mysql_num_rows($query)<$allplayers) // sanity
  die('Not enough players!');
else
  for($team=1;$team<=$nteams;$team++)
    {
    for($base=1;$base<=$nbase;$base++)
      {
      $row = mysql_fetch_array($query);
      echo "Team $team Base $base = {$row['id']}<br />";
      }
    for($pivot=1;$pivot<=$npivots;$pivot++)
      {
      $row = mysql_fetch_array($query);
      echo "Team $team Pivot $pivot  = {$row['id']}<br />";
      }
    }
mysql_close();

編集: コメントに従って、チーム、ベース プレーヤー、およびピボットの数をパラメータ化するようにコードを変更しました。

于 2013-11-05T10:13:57.383 に答える
0

この単純なコードは機能するはずです:

$i = 0;
while ($row = mysql_fetch_array($query)) {
    if($i % 4 == 0) 
        echo "<BR /> Base  = " . $row['id'];
    else 
        echo " Pivot : ". $row['id'];
    $i++;
}

グレッグ

于 2013-11-05T10:11:37.780 に答える