我需要插入一张桌子" x"行数基于多少"组"和#34;球员"用户输入表单(该部分有效)但我还需要使用特定值标记它们,并且不能拥有玩家值#4。
实施例: 如果用户说他们需要2组和6名玩家。这意味着有2组每组6个玩家,所以我需要在表格中插入12条记录,它应该是这样的:
id group player
1 1 1
2 1 2
3 1 3
4 1 5
5 1 6
6 1 7
7 2 1
8 2 2
9 2 3
10 2 5
11 2 6
12 2 7
这是我的表格..
<form id="setup" name="setup" method="post" action="bin/setup.php">
<input type="text" name="groups" placeholder="# OF GROUPS" value="">
<input type="text" name="players" placeholder="# OF PLAYERS" value="">
<button class="btn" name="submit" type="submit">Insert</button>
</form>
这里是插入记录的代码。现在,它插入了12条记录,但无法弄清楚如何处理&#34;组&#34;和#34;球员&#34;
if(isset($_POST['submit'])) {
$group = ( ($_POST['groups']) * ($_POST['players']) );
$sql = "INSERT INTO table (groups, players)
VALUES (:groups, :players)";
$stmt = $db->prepare($sql);
$stmt->bindParam(':groups', $_POST['groups']);
$stmt->bindParam(':players', $_POST['players']);
for ($i = 0; $i < $tables; $i++) {
$stmt->execute();
}
header("Location:/");
exit;
} else {
header("Location:/?msg=error");
exit();
}
任何帮助都会很棒。 感谢。
-------更新版本-------
插入具有正确值的行(从播放器列跳过值#4)。
$sql = "INSERT INTO table (groups, players)
VALUES (:groups, :players)";
$stmt = $db->prepare($sql);
for($i=1; $i <= $_POST['groups']; $i++)
for($j=1; $j <= $_POST['players']+1; $j++)
{
if($j == 4){continue;}
$stmt->bindParam(':groups', $i);
$stmt->bindParam(':players', $j);
$stmt->execute();
}
答案 0 :(得分:1)
您需要将绑定推送到双循环:
$sql = "INSERT INTO table (groups, players) VALUES (:groups, :players)";
for($i=1; $i <= $_POST['groups']; $i++)
for($j=1; $j <= $_POST['players']; $j++)
{
$stmt->bindParam(':groups', $i);
$stmt->bindParam(':players', $j);
$stmt->execute();
}