如何在一个表单提交中将多个电子邮件存储到数据库?

时间:2012-12-05 12:40:49

标签: php html forms

我正在构建一个系统,允许组织成员将他们收到的简报推荐给他们的朋友或家人。我想做的是给这些成员一个页面,允许他们将人名和电子邮件地址添加到表单中。此表单将限制为5个电子邮件名称和电子邮件地址,因此您基本上有五行,每行有两个HTML表单输入。

我的问题是我不知道如何将其可靠地添加到数据库中?我是否需要5个单独的表单,然后通过一个表单提交按钮提交?

修改
我现在拥有两张桌子。一个member表和一个referral表。当成员开始引用过程时,他们的数据将被添加到member表中,然后获取其ID。

member表包含以下字段:

ID
Firstname
Surname
Email
Referrer

当会员添加他们自己的详细信息时,我会将他们的ID存储起来以供日后使用。

然后,我想要一个看起来像这样的表格:

Referral 1:  their email address   -  their name
Referral 2:  their email address   -  their name
Referral 3:  their email address   -  their name
Referral 4:  their email address   -  their name
Referral 5:  their email address   -  their name

这样我就可以将他们的信息添加到referral表中,看起来这样会添加所有数据:

ID   |   Firstname   |   Surname   |   Email            |   Referrer
==========================================================================
1    |   Joe         |   Bloggs    | joe@bloggs.com     |    1
2    |   John        |   Bloggs    | john@bloggs.com    |    1
3    |   James       |   Bloggs    | james@bloggs.com   |    1
4    |   Jordan      |   Bloggs    | jordan@bloggs.com  |    1
5    |   Jack        |   Bloggs    | jack@bloggs.com    |    1

这就是最终产品应该是什么。

2 个答案:

答案 0 :(得分:1)

您只需要一个表单,然后是登录人员的用户ID。

<?php
if (!empty($_POST))
{
    for($i = 1; $i < 6; $i++)
    {
        mysql_query("INSERT INTO tbl (name, email, referrer) VALUES ('" . $_POST[name . $i] . "', '" . $_POST[email . $i] . "', '" . $_SESSION[user_id] . "')");
    }
}
?>
<html>
<head></head>
    <body>
        <form action="<?= $_SERVER['REQUEST_URI'] ?>" method="post">
            <?php
                for($i = 1; $i < 6; $i++)
                {
                    echo '<p>';
                    echo 'Name ' . $i;
                    echo '<input type="text" name="name' . $i . '" id="name' . $i . '">';
                    echo 'Email ' . $i;
                    echo '<input type="text" name="email' . $i . '" id="email' . $i . '">';
                    echo '</p>';
                }
            ?>
            <input type="submit" value="save">
        </form>
    </body>
</html>

答案 1 :(得分:0)

您可以在注册中为所有人提供额外的电子邮件地址,例如guest_email_1,guest_email_2等等。

然后在数据库端,您可以向该用户记录添加一些新字段以添加这些电子邮件地址,或者您可以创建一个用于存储这些访客电子邮件的新表。在此表中,您可以拥有签名人员的ID,以便您可以根据需要参考该电子邮件地址的来源。

这就是你要找的东西吗?

编辑我认为您可能正在寻找获取刚刚添加的用户ID的方法。因此,假设用户提交表单并将它们添加到数据库表中,但现在我们必须将其ID和电子邮件地址添加到另一个表中。如果这是正确的,你使用mysqli然后有一个函数mysqli_insert_id这是它的手册:

[mysqli_inser_id - manual][1]

此功能将获取添加到数据库的最后一个ID,然后您可以使用它来存储其他电子邮件地址以及原始用户的ID。

那是吗?