0

私は、組織のメンバーが受け取ったニュースレターを友人や家族に紹介できるシステムを構築しています。私が考えたのは、これらのメンバーに、その人の名前と電子メールアドレスをフォームに追加できるページを提供することでした。このフォームは5つの電子メール名と電子メールアドレスに制限されるため、基本的に5つの行があり、1行に2つのHTMLフォーム入力があります。

私の問題は、これをデータベースに確実に追加する方法がわからないことです。1つのフォーム送信ボタンで送信される5つの個別のフォームが必要ですか?

編集
私が現在持っているのは2つのテーブルです。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

これが最終製品のあるべき姿です。

4

2 に答える 2

1

必要なのは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>
于 2012-12-05T13:57:13.377 に答える
0

たとえば、guest_email_1、guest_email_2など、異なる名前のすべてのユーザーのサインアップに追加の電子メールアドレスを含めることができます。

次に、データベース側で、ユーザーが記録する新しいフィールドを追加してこれらの電子メールアドレスを追加するか、これらのゲスト電子メールを保存するための新しいテーブルを作成することができます。このテーブルでは、サインアップした人のIDを取得できるため、必要に応じて、その電子メールアドレスの送信元を参照できます。

それはあなたが探しているものですか?

編集追加したばかりのユーザーのIDを取得する方法を探しているのではないかと思います。たとえば、ユーザーがフォームをサミットし、データベーステーブルに追加されたとしますが、IDとメールアドレスを他のテーブルに追加する必要があります。これが正しく、mysqliを使用している場合は、関数mysqli_insert_idがあります。そのためのマニュアルは次のとおりです。

[mysqli_inser_id - manual][1]

この関数は、データベースに追加された最後のIDを取得し、それを使用して、元のユーザーのIDを持つ他の電子メールアドレスを保存できます。

そのこと?

于 2012-12-05T12:46:11.387 に答える