我对php很新,我很难搞清楚如何创建一个表单,我可以有多个输入并使用php将所有输入输入到sql表中。我设置了一个表,以便每一行都是一个新条目,这样就可以一次性上传一个时间表,而不是1比1。
这是我目前的代码:
HTML:
<table id="register">
<form action="processing_games.php" method="post"/>
<tr>
<td><p>Date<br>(m/dd/yy)</p></td>
<td><p>Time<br>(h:mm AM/PM)</p></td>
<td><p>Opponent</p></td>
<td><p>Location<br>(Rink Name)</p></td>
<td><p>Conference<br>Game?</p></td>
<td><p>Home or Away<br>Game?</p></td>
</tr>
<tr>
<td><input type="date" name="date"></td>
<td><input type="time" name="time"></td>
<td><input type="text" name="opponent"></td>
<td><input type="text" name="location"></td>
<td><input type="radio" name="conference" value="+"> Conference
<br>
<input type="radio" name="conference" value=""> Non-Conference </td>
<td><input type="radio" name="home_away" value=" vs "> Home
<br>
<input type="radio" name="home_away" value=" @ "> Away</td>
</tr>
<tr>
<td><input type="date" name="date"></td>
<td><input type="time" name="time"></td>
<td><input type="text" name="opponent"></td>
<td><input type="text" name="location"></td>
<td><input type="radio" name="conference" value="+"> Conference
<br>
<input type="radio" name="conference" value=""> Non-Conference </td>
<td><input type="radio" name="home_away" value=" vs "> Home
<br>
<input type="radio" name="home_away" value=" @ "> Away</td>
</tr>
</table>
<br><br>
<center>
<input type="submit" value="Submit"/>
</form>
PHP:
<?php
include '../connection.php';
$game_date = $_POST['date'];
$game_time = $_POST['time'];
$value3 = $_POST['opponent'];
$value4 = $_POST['location'];
$value5 = $_POST['conference'];
$value6 = $_POST['home_away'];
$value = date('n/j/y', strtotime($game_date));
$value2 = date('g:i A', strtotime($game_time));
$sql = "INSERT INTO schedule (date, time, opponent, location, conference, home_away) VALUES ('$value', '$value2', '$value3', '$value4', '$value5', '$value6')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
header("Location: http://www.rit.edu/sg/clubhockey/admin/complete.php");
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
mysqli_close($conn);
?>
感谢任何帮助。
答案 0 :(得分:0)
您可以将html转换为发送帖子数据为&#34;多维&#34;阵列。 从:
更新所有输入名称(日期,时间,oppenent ...除提交!)name="items[0][date]" // for first block of inputs
name="items[1][date]" // for second block of inputs
name="items[n][date]" // for nth block ;)
到
processing_games.php
关键&#34;项目&#34;就是这样的例子!
将表单发布到Array
(
[items] => Array
(
[0] => Array
(
[date] => your input date 1
[oppenent] => your input openent 1
)
[1] => Array
(
[date] => your input date 2
[oppenent] => your input openent 2
)
)
)
和var_dump($ _ POST)。
您应该看到$ _POST数组输出结构,如:
<?php
$postItems = null;
if (isset($_POST['items'])) {
$postItems = $_POST['items'];
// iterate through and execute single queries
foreach($postItems as $item) {
// $item should be associative array with keys (date, time, oppenent)
var_dump($item); // show $item
$datetime = new \DateTime($item['date']);
$dateFormatted = $datetime->format('m-d-Y');
// build query:
// please DO NOT insert values from POST without escaping, just for explanation!
$sql = 'INSERT INTO schedule (date, time, opponent, ...)
VALUES ("'.$dateFormatted.'", "'.$item['time'].'"
, "'. $item['opponent'].'", ...)';
echo $sql . '<br />';
}
}
?>
<html>
<body>
<form method="post">
<table>
<tr>
<td>
<p>Date<br>(m/dd/yy)</p>
</td>
<td>
<p>Time<br>(h:mm AM/PM)</p>
</td>
<td>
<p>Opponent</p>
</td>
<td>
<p>Location<br>(Rink Name)</p>
</td>
<td>
<p>Conference<br>Game?</p>
</td>
<td>
<p>Home or Away<br>Game?</p>
</td>
</tr>
<tr>
<td><input type="date" name="items[0][date]"></td>
<td><input type="time" name="items[0][time]"></td>
<td><input type="text" name="items[0][opponent]"></td>
<td><input type="text" name="items[0][location]"></td>
<td><input type="radio" name="items[0][conference]" value="+"> Conference
<br>
<input type="radio" name="items[0][conference]" value=""> Non-Conference </td>
<td><input type="radio" name="items[0][home_away]" value=" vs "> Home
<br>
<input type="radio" name="items[0][home_away]" value=" @ "> Away</td>
</tr>
<tr>
<td><input type="date" name="items[1][date]"></td>
<td><input type="time" name="items[1][time]"></td>
<td><input type="text" name="items[1][opponent]"></td>
<td><input type="text" name="items[1][location]"></td>
<td><input type="radio" name="items[1][conference]" value="+"> Conference
<br>
<input type="radio" name="items[1][conference]" value=""> Non-Conference </td>
<td><input type="radio" name="items[1][home_away]" value=" vs "> Home
<br>
<input type="radio" name="items[1][home_away]" value=" @ "> Away</td>
</tr>
</table>
<input type="submit" name="submit" value="submit" />
</form>
</body>
</html>
然后,您可以遍历items数组($ _POST [&#39; items&#39;])构建插入查询/查询。举个例子:
{{1}}
请注意:在构建插入查询之前注意注释代码注释! ;)
仅供参考#1 您可以尝试prepared statements并将值绑定到语句。无需转义您的值以防止SQL注入 - 准备好的语句将完成此工作。
仅供参考#2,请检查此问题及其接受的答案: Submitting a multidimensional array via POST with php