PHP Form to MySQL - Array[] into MySQL Issue


PHP Form to MySQL - Array[] into MySQL Issue

我在一个应该允许俱乐部会员注册的网站上工作。表单中的信息应该存储在MySQL数据库中。我已经通过存储和读取XML样式的文本文件完成了这个任务,但是现在我必须将其转换为MySQL。以下是index.php部分的代码:

    <div id="rightcol">
    <?php
        include_once("Membership_Class.php");
        $myClub = new Club("Localhost", "AMemberUser", "Pass123Word", "info_club");
        if(isset($_GET['BodyContent']))
        {
            if($_GET['BodyContent'] == "about")
            {
                $myClub -> DisplayAbout();
            }
            else if($_GET['BodyContent'] == "register")
            {
                $myClub -> DisplayRegistrationForm();
            }
            else if($_GET['BodyContent'] == "processregistration")
            {
                $myClub -> ProcessRegistrationForm();
            }
            else if($_GET['BodyContent'] == "members")
            {
                $myClub -> DisplayMembers();
            }
        }
    ?>
</div>

下一部分来自我的Membership_Class.php文件:

function DisplayRegistrationForm()
    {
        echo("<h2>Become a Club Member</h2>
        <form name='register' method='post' action='Assign5_Solution.php?BodyContent=processregistration'>
            <table>
                <tbody>
                    <tr>
                        <td width='80px'>
                            <label>First Name: </label>
                        </td>
                        <td width='300'>
                            <input id='firstname' type='text' name='firstname' value='' required/>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <label>Last Name: </label>
                        </td>
                        <td>
                            <input id='lastname' type='text' name='lastname' value='' required/>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <label>Your Email: </label>
                        </td>
                        <td>
                            <input id='email' type='text' name='email' value='' required/>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <label>Gender: </label>
                        </td>
                        <td>
                            <input id='gender' type='radio' name='gender' value='male'>Male<br />
                            <input id='gender' type='radio' name='gender' value='female'>Female
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <label>Interested in: </label>
                        </td>
                        <td id='check'>
                            <span style='font-weight: bold;'>Check All that Apply:</span><br />
                            <input id='interests' type='checkbox' name='interests[]' value='1'>Pizza Party<br />
                            <input id='interests' type='checkbox' name='interests[]' value='2'>Joining Study Groups<br />
                            <input id='interests' type='checkbox' name='interests[]' value='3'>Visiting Employer Sites<br />
                            <input id='interests' type='checkbox' name='interests[]' value='4'>Participating in Programming Competitions<br />
                            <input id='interests' type='checkbox' name='interests[]' value='5'>Building Games<br />
                            <input id='interests' type='checkbox' name='interests[]' value='6'>Becoming an Officer of the Club
                        </td>
                    </tr>
                    <tr>
                        <td colspan='2' style='text-align: center;'>
                            <input id='submit' type='submit' name='submit' value='Sign Up'/>
                        </td>
                    </tr>
                </tbody>
            </table>    
        </form>");
    }
    function ProcessRegistrationForm()
    {   
        $fname = $_POST['firstname'];
        $lname = $_POST['lastname'];
        $email = $_POST['email'];
        $gender = $_POST['gender'];
        $interests = $_POST['interests'];
        if(!isset($_POST['firstname']) || !isset($_POST['lastname']) || !isset($_POST['email']) ||
            ($_POST['firstname']) == '' || ($_POST['lastname']) == '' || ($_POST['email']) == '')
        {
            echo("Please enter your first / last name and email.");
        }   
        else
        {
            echo("<h2>Results</h2>");
            echo("<div id='results'>");
            echo $fname; 
            echo("<br />");
            echo $lname; 
            echo("<br />");
            echo $email;
            echo("<br />");
            echo $gender;
            echo("<br />");
            foreach($interests as $likes)
            {
                echo $likes . "<br />";
            }
            echo("<p style='font-weight: bold;'>Your data has been saved! We will contact you soon!</p>");
            echo("</div>");
        }
        $myClub = new Club("localhost","A340User","Pass123Word","info_club");
        $date = date("Y/m/d");
        $sql="INSERT INTO member
                    (`FirstName`,`LastName`,`Gender`,`Email`,`MemberSince`)
                VALUES
                    ('$fname','$lname','$gender','$email','$date');";
        $result = mysqli_query($this->Con,$sql);
        if($result == true) 
        {
            echo "Successful Insert<br />";
        }
        else
        {
            echo "Error Inserting class" . mysqli_error($this->Con) ." <br />";
        }
        for($i = 0; $i < sizeof($interests); $i++)
        {
            $interest = $interests[$i];
            $sql="INSERT INTO member_interests
                        (`Email`,`InterestID`)
                    VALUES
                        ('$email',$interest);";
        }
        $result = mysqli_query($this->Con,$sql);
        if($result == true) 
        {
            echo "Successful Insert<br />";
        }
        else
        {
            echo "Error Inserting class" . mysqli_error($this->Con) ." <br />";
        }

现在我已经得到了这个发布到我的数据库,但是当我检查表单数据中的多个兴趣时,我正在测试它,它只发布我检查到member_interests表的兴趣之一。很明显,我把interests[]数组搞错了,或者是循环。

我的数据库名为info_club,包含三个表:interest_typemembermember_interests。用户邮箱为key id。在interest_type表中有两列,InterestIDInterestDescription。成员表中有EmailFirstNameLastNameGenderMemberSince。在我的member_interests表中有一个EmailInterestID列。

我需要找出如何获得多个兴趣到member_interests表

好,我将$result = mysqli_query($this->Con,$sql);行切换到for循环中,它可以很好地插入到数据库中。那么简单。所以正确的代码是:

for($i = 0; $i < sizeof($interests); $i++)
        {
            $interest = $interests[$i];
            $sql="INSERT INTO member_interests
                        (`Email`,`InterestID`)
                    VALUES
                        ('$email',$interest);";
            $result = mysqli_query($this->Con,$sql);
        }