【发布时间】:2021-05-07 10:12:20
【问题描述】:
我是否可以根据下拉选择将表格表单提交到 mysqli 数据库中的选定表格?
例如,用户可以使用下拉选择在 mysqli 数据库中选择表 A 或 B,然后单击发送。 下面的代码只是一个例子(但我的确切代码)
请求解决。 谢谢。
<form method="post" action="">
<table name="userform" >
<tr><th>Full Name</th>
<th> Week </th></tr>
<tr><td><input name="name" type="text" id="name"></td>
<td><input name="week" type="number" id="week"></td></tr>
</table>
<select name="sendToWho" >
<option value="tableA" >table A</option>
<option value="tableB" >table B</option>
<option value="tableC">table C</option>
<input type="submit" name="save" id="save" value="Save Data">
</form>
我使用了 '".$name[$tableName]."' 因为它是一个添加、删除、可编辑的表,然后才发送到 mysqli 数据库,
<?php
$conn = mysqli_connect("localhost","root","","mySystem");
$sendTO = [
"tableA" => "optionA",
"tableB" => "optionB",
"tableC" => "optionC",
];
foreach ($sendTO as $tableName => $optionName)
{
$table = isset($_POST["userform"], $sendTO[$_POST["name"]])
? $sendTO[$_POST["week"]]
: $sendTO[0];
$sql = "INSERT INTO `$table`(Name, Week) VALUES ('".$name[$tableName]."','".$week[$tableName]."')";
$query = mysqli_query($conn,$sql);
}
?>
【问题讨论】:
-
是的,您可以,但您需要检查表格是否存在以及是否在表单中的选择范围内,例如
in_array($_POST['sendToWho'], $sendTO),否则用户可以随机更改您的sendToWho -
你能给我举个例子吗?我真的不明白
-
了解 sql 注入以及准备和绑定查询的重要性
-
这里应该问的第一个问题是,为什么你想要多个表,并且结构明显相同?在大多数情况下,这表明一开始的数据建模存在问题。如果您只是需要将此数据与不同的用户或类似的东西相关联 - 那么在大多数情况下,使用 one 表并添加一个包含用户 ID 的附加列会更有意义。
标签: php html mysql database mysqli