我有一个具有可变数量的输入字段的表单,现在我尝试在数据库中获取这些值。我从这里的另一个问题中得到了这段代码,所有答复都暗示他们在起作用。.所以我认为我在这里做错了。
我没有错误,每次我提交表单时,它只在数据库中输入一个空条目/行。 $ _POST数组充满了我需要的所有数据,它在我打印时显示。
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (
!empty($_POST['homeTeam']) && !empty($_POST['awayTeam']) && !empty($_POST['homeWin']) && !empty($_POST['awayWin']) &&
is_array($_POST['homeTeam']) && is_array($_POST['awayTeam']) && is_array($_POST['homeWin']) && is_array($_POST['awayWin']) &&
count($_POST['homeWin']) === count($_POST['awayWin'])
) {
$homeTeam_array = $_POST['homeTeam'];
$awayTeam_array = $_POST['awayTeam'];
$homeWin_array = $_POST['homeWin'];
$awayWin_array = $_POST['awayWin'];
for ($i = 0; $i < count($homeTeam_array); $i++) {
$homeTeam = mysql_real_escape_string($homeTeam_array[$i]);
$awayTeam = mysql_real_escape_string($awayTeam_array[$i]);
$homeWin = mysql_real_escape_string($homeWin_array[$i]);
$awayWin = mysql_real_escape_string($awayWin_array[$i]);
$sql = "INSERT IGNORE INTO CalcOdds (homeTeam, awayTeam, homeWin, awayWin) VALUES ('$homeTeam', '$awayTeam', '$homeWin', '$awayWin')";
$conn->query($sql);
$conn->close();
}
}
echo "<pre>";
print_r($_POST);
echo "</pre>";
echo 'Done!';
}
?>
答案 0 :(得分:3)
我认为问题是因为您有$ conn-> close();在for循环中,尝试像这样在循环之后添加它:
for ($i = 0; $i < count($homeTeam_array); $i++) {
$homeTeam = mysql_real_escape_string($homeTeam_array[$i]);
$awayTeam = mysql_real_escape_string($awayTeam_array[$i]);
$homeWin = mysql_real_escape_string($homeWin_array[$i]);
$awayWin = mysql_real_escape_string($awayWin_array[$i]);
$sql = "INSERT IGNORE INTO CalcOdds (homeTeam, awayTeam, homeWin, awayWin) VALUES ('$homeTeam', '$awayTeam', '$homeWin', '$awayWin')";
$conn->query($sql);
}
$conn->close();
答案 1 :(得分:0)
我会做isset()而不是!empty()
从外观上看,您实际上尚未建立与数据库的连接。
例如,通过使用echo()确保数据实际上通过if()语句获得。