我有一个由这两个表组成的数据库。
分会
-id *主键
-name
课程 -id
-clubid *外键
-name
====================================== HTML ======== ===============================
在我的网页上,我有一个表格,允许用户注册一个俱乐部,默认情况下从一个课程开始,并允许他们通过克隆输入字段和更改名称来点击“添加课程”。
因此,在提交时,他们可能需要将一个,两个或更多课程添加到我的数据库中
====================================== PHP ======== =================================
到目前为止,我只允许每个俱乐部开设一门课程,但需要有一对多的关系。
if($_POST){
if(isset($_POST['register'])){
$clubid = $clubs->addClub($_POST['golfclub'], $_POST['email'],$_POST['password1'], $_POST['password1'],date('day',time()));
$clubs->addClubCourse($clubid, $_POST['course1']);
header('Location: ./index.php');
}
}
addClubCourse
使用俱乐部表中最近添加的ID进入此时的课程。如何进行迭代添加say,
$_POST['course1'], $_POST['course2']) .... etc without knowing how many courses their will be.
==== SQL ===== 只需插入与注册相关的俱乐部ID的新课程。
感谢您的帮助
答案 0 :(得分:2)
将您的html字段命名为一个数组:
<input name="course[]">
等
然后,你可以这样做:
foreach($_POST['course'] as $course) {
$clubs->addClubCourse($clubid, $course);
}
答案 1 :(得分:0)
或者遍历$ _POST,但也验证:
foreach($_POST as $key => $value){
if(preg_match('/^course\d+$/', $key)){
$courses[$key] = $value;
}
}
虽然数组输入是一个更优雅的解决方案。