Я работаю над веб-сайтом, который должен разрешить регистрацию членов Клуба. Предполагается, что информация из формы хранится в базе данных 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 />"; }
-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. Очевидно, что у меня есть массив интересов [] где-то неправильно, или цикл.
Моя база данных называется info_club с тремя таблицами: interest_type
, member
и member_interests
. Электронный адрес пользователя – это key id
. В таблице interest_type есть два столбца: InterestID
и InterestDescription
. В таблице членов есть Email
, FirstName
, LastName
, Gender
и MemberSince
. В моей таблице member_interests
есть столбцы Email
и InterestID
.
Мне нужно узнать, как получить несколько интересов в таблице member_interests.
Хорошо, я переключил $result = mysqli_query($this->Con,$sql);
line в цикл 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); }