-1

我正在为以下模型编写脚本:

假设有 5 个事件。为了让用户注册事件,他们需要输入一些详细信息。报名以团队的形式进行,但每次活动的成员人数不同。

在我的 sql 表中events有一行members存储所有 5 个事件的成员数。

使用存储members在行中的数据,我可以运行一个for-loop用于表格的 HTML 显示,用户可以在其中输入他和他的团队的详细信息。

但我对如何编码这php部分感到困惑?我知道 php,获取信息并将它们存储在 sql 数据库中,但在这种特殊情况下,我必须php为所有事件编写单独的脚本,因为成员的数量不会相同。

编辑#1

事件例如。:

**event1**: number of members: 5 (mem_1, mem_2, mem_3, mem_4, mem_5) 
**event2**: number of members: 3 (mem_1, mem_2, mem_3)
**event3**: number of members: 2 (mem_1, mem_2)
**event4**: number of members: 4 (mem_1, mem_2, mem_3, mem_4)
**event5**: number of members: 6 (mem_1, mem_2, mem_3, mem_4, mem_5, mem_6)

这些mem_x字段存储成员的名称。

那么如何为注册编写单个 php 脚本。我是否必须为所有事件创建单独的函数,因为事件的成员数量不同。

4

3 回答 3

1

您检查输入的数据以确保输入的成员数量与活动允许的成员数量相匹配。

然后循环数据,将每个(新)成员添加到 members 表,并将 member_id 和 event_id 添加到 members_events联结表(添加的行数等于成员数)。

于 2013-02-06T13:41:35.760 回答
0

如果是我,我的表格将包含以下字段:

Column Name        Example Value
member_id          [auto increment]
member_group       Step1
member_type        text
member_order       1
member_title       First Name
member_field_name  fname
member_default     enter first name
member_max_length  25

然后,在 PHP 中,您可以执行如下查询:

$fields = mysql_query("Select * From [member table] Where member_group = 'Step1' Order By member_order;")
while ($field = mysql_fetch_assoc($fields)) {?>
    <label for="<?= $field['member_field_name']; ?>">
       <?= $field['member_title']; ?>
       <? switch ($field['member_type']) {
           case "text":
               echo "<input type=\"text\" name=\"".$field['member_field_name']."\" value=\"".$field['member_default']."\" />";
               break;
       }?>
    </label>
<?}

然后,在处理页面时,只需再次从数据库中获取字段列表(用于字段名称)并处理页面。

于 2013-02-06T13:51:51.743 回答
0

根据成员的数量,您不需要不同的功能。例如,您可以将所有插入的成员存储在一个数组中,然后执行类似的操作

foreach($members as $member){
   mysql_query ( "INSERT INTO members (name,eventID) VALUES (".$member['name'].",".$members['eventID'].")" );
}

其中 $members 是包含成员名称的数组。

这是你想知道的吗?

于 2013-02-06T14:15:23.347 回答