私は、クラブ メンバー登録を許可するはずの Web サイトに取り組んでいます。フォームからの情報は、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 />";
}
現在、これをデータベースに投稿するようになっていますが、テスト中にフォームデータで複数の関心を確認すると、チェックした関心の 1 つだけが member_interests テーブルに投稿されます。明らかに、interests[] 配列のどこか、またはループが間違っています。
interest_type
私のデータベースは info_club と呼ばれ、 、 、 の3 つのテーブルmember
がありmember_interests
ます。ユーザーの電子メールはkey id
. Interest_type テーブルには、 と の 2 つの列がInterestID
ありInterestDescription
ます。メンバ テーブルにはEmail
、FirstName
、LastName
、Gender
、および がありMemberSince
ます。私のmember_interests
テーブルにはEmail
とInterestID
列があります。
member_interests テーブルに複数の関心を取得する方法を見つける必要があります。