我正在尝试将表单中的数据插入到 Teams 表中,其中包含所有团队名称和每个年龄组的 fk。 我从一个简单的 SELECT 函数获取年龄组 id,然后在表单上循环该 id。 当我运行插入函数时,我只从第一个表单中获取 4 行数据。 因此,如果有 3,4 或 5 个不同的年龄组,我想插入所有组的名称和age_group fk
形式和年龄组循环:
<form action="" method="post">
<?php
$ages = get_age_groups_in_cups($db);
foreach($ages as $age){
?>
<input type="text" name="age_group[]" value="<?php echo $age['age_id'];?>">
<input type="text" name="team_name[]">
<input type="text" name="team_name[]">
<input type="text" name="team_name[]">
<input type="text" name="team_name[]">
<?php
}
?>
<button name="insert_rows">save</button>
</form>
提交插入按钮后,我正在运行插入函数,但我只从“第一个”age_group 获取结果
功能:
function insert_teams($db){
$age_group = $_POST['age_group'];
$team_name = $_POST['team_name'];
foreach ($age_group as $key => $error){
$sql = "INSERT INTO teams (team_name, age_group_fk) VALUES (:team_name, :age_group_fk)";
$stmt = $db->prepare($sql);
$stmt->execute(array(
'team_name' => $team_name,
'age_group_fk' => $age_group[$key]
));
}
}
最佳答案
您应该在输入数组上添加一个级别。
您使用<input type="text" name="team_name[]">
每个年龄段。
但基本上所有年龄段都会在同一个数组中。
使用类似的东西
<?php
<form action="#" method="post">
<?php
$ages = get_age_groups_in_cups($db);
foreach($ages as $age){
?>
<input type="text" name="team_name[<?= $age['age_id'] ?>][]">
<input type="text" name="team_name[<?= $age['age_id'] ?>][]">
<input type="text" name="team_name[<?= $age['age_id'] ?>][]">
<input type="text" name="team_name[<?= $age['age_id'] ?>][]">
<?php
}
?>
<button name="insert_rows">save</button>
</form>
关于php - 插入由 fk - php 链接的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40527281/