我是php的新手。我的表单中有一个下拉菜单,下拉选项来自数据库,我正试图将下拉菜单中选定的选项插入到数据库中的一个单独的表中。查询似乎正在执行,但团队名称值没有插入到数据库中。这是表单的代码。非常感谢您的帮助!
<form class="form-register" method="POST" enctype="multipart/form-data">
Match Type
<select class="form-control" name="MatchType" value="Match Type">
<option value="Select one">Select One</option>
<option value="T20">Twenty20 Match</option>
<option value="OneDay">One-Day Match</option>
<option value="Test">Test Match</option> </select>
Home Team
<?php
mysql_select_db('cricket_system');
$sql = "SELECT TeamName FROM teams";
echo "<select class='form-control' name='Team1' value='Team1'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='". $row['TeamName']."'>". $row['TeamName']."</option>";
}
echo "</select> ";
?>
Away Team
<?php
mysql_select_db('cricket_system');
$sql1 = "SELECT TeamName FROM teams";
$result1 = mysql_query($sql1);
echo "<select class='form-control' name='Team2' value='Team2'>";
while ($row = mysql_fetch_array($result1)) {
echo "<option value='". $row['TeamName']."'>". $row['TeamName']."</option>";
}
echo "</select> ";
?>
Date (yyyy/mm/dd)
<input type="text" id="Date" name="Date" class="form-control" placeholder="Date (yyyy/mm/dd)" required>
<br><button class="signupbutton" type="submit" name="submit" >Add Match</button> <br> <br>
</form>
<?php
include('includes/database.php');
mysql_select_db('cricket_system');
if(isset($_POST['submit'])){
$Team1 = $_POST['Team1'];
$Team2 = $_POST ['Team2'];
$MatchType = $_POST['MatchType'];
$insert = "INSERT INTO matches (Team1, Team2, Date, MatchType) values
('$Team1', '$Team2', '$Date', '$MatchType')";
$add = mysql_query($insert);
if ($add) {
echo "<script>alert('Match has been successfully added.')</script>";
}
else {
echo mysql_error();
}
}
mysql_close();
?>
您缺少我在代码中添加的$Date variable
<form class="form-register" method="POST" enctype="multipart/form-data">
Match Type
<select class="form-control" name="MatchType" value="Match Type">
<option value="Select one">Select One</option>
<option value="T20">Twenty20 Match</option>
<option value="OneDay">One-Day Match</option>
<option value="Test">Test Match</option> </select>
Home Team
<?php
mysql_select_db('cricket_system');
$sql = "SELECT TeamName FROM teams";
echo "<select class='form-control' name='Team1' value='Team1'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='". $row['TeamName']."'>". $row['TeamName']."</option>";
}
echo "</select> ";
?>
Away Team
<?php
mysql_select_db('cricket_system');
$sql1 = "SELECT TeamName FROM teams";
$result1 = mysql_query($sql1);
echo "<select class='form-control' name='Team2' value='Team2'>";
while ($row = mysql_fetch_array($result1)) {
echo "<option value='". $row['TeamName']."'>". $row['TeamName']."</option>";
}
echo "</select> ";
?>
Date (yyyy/mm/dd)
<input type="text" id="Date" name="Date" class="form-control" placeholder="Date (yyyy/mm/dd)" required>
<br><button class="signupbutton" type="submit" name="submit" >Add Match</button> <br> <br>
</form>
<?php
include('includes/database.php');
mysql_select_db('cricket_system');
if(isset($_POST['submit'])){
$Team1 = $_POST['Team1'];
$Team2 = $_POST ['Team2'];
$Date= $_POST ['Date'];
$MatchType = $_POST['MatchType'];
$insert = "INSERT INTO matches (Team1, Team2, Date, MatchType) values
('$Team1', '$Team2', '$Date', '$MatchType')";
$add = mysql_query($insert);
if ($add) {
echo "<script>alert('Match has been successfully added.')</script>";
}
else {
echo mysql_error();
}
}
mysql_close();
?>
第一个下拉列表的SQL从未被填充,因为从未设置$result
变量,因此$_POST["Team1"]
为null或空/unset。第一个下拉列表永远不会起作用。尝试添加以下内容:
$result = mysql_query($sql);
我建议添加代码,然后在两个团队下拉列表中都有所有值后再次提交。
作为一个简单的检查,在分配团队名称时,请执行以下操作
$Team1 = isset($_POST['Team1']) ? $_POST['Team1'] : '';
如果这在数据库表中为Team1插入了一个空值,那么它就证明了上面的下拉列表是的问题