2

我正在尝试为体育网站生成固定装置。我有一个名为 Members 的表,相关列是 member_id 和 League_id。League_id 将从上一页的表单中作为变量 $leagueid 传递。

我正在使用...提取与该联盟 ID 相关的所有成员 ID

$result = mysql_query("SELECT member_id FROM Members WHERE league_id = '$leagueid'")

我现在需要为所有这些成员 ID 生成固定装置,然后将该数据插入 MySQL 表“固定装置”。该表中的每一行数据都需要包括:-

player1 - 第一个玩家的
member_id player2 - 第二个玩家的 member_id
week - 整数显示比赛将在哪一周进行
League_id

但是,也有一些特殊条件需要适用。

  1. 每第 3 周需要保持空闲(即第 3、6、9、12 周等)。这几周不能安排比赛

  2. 需要有一个选项(将从上一页的表单中选择并作为名为 $double 的复选框变量传递)将匹配项加倍。这意味着在生成一轮完整的赛程后,您需要获取生成的列表,交换玩家 1 和 2 的 ID,并将它们全部复制。所以1轮固定装置可能看起来像这样......

第 1 周

1 对 2
3 对 4

第 2 周

1 对 3
2 对 4

第 3 周

1 对 4
2 对 3

然后你会交换ID并添加另一组......

第 4 周

2 对 1
4 对 3

第 5 周

3 对 1
4 对 2

第 6 周

4 对 1
3 对 2

我正在寻找一些代码,这些代码将生成所有这些固定装置,同时牢记我列出的所有特殊条件。

我知道这在 PHP 中都是可能的,但我也认为我可以使用一个 SQL 查询来代替,这可能会更干净。谁能帮我吗??谢谢!!

PS我知道我使用的是mysql而不是mysqli。我目前正在尝试转移到 mysqli,但我遇到了一些问题,我已经在一个单独的问题上发布了这些问题,但我还没有得到正确的答案。

4

1 回答 1

1
SELECT * FROM ints;
+---+
| i |
+---+
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
+---+

SELECT * FROM ints WHERE MOD(i,3) > 0;
+---+
| i |
+---+
| 1 |
| 2 |
| 4 |
| 5 |
| 7 |
| 8 |
+---+

第二部分很简单

INSERT INTO my_table SELECT week_id+3, column_2, column_1 FROM my_table; 
于 2013-09-03T08:46:08.333 回答