我最近为我的FRC团队(FIRST机器人团队)制作了一个快速的HTML表格,以便在比赛中评估其他团队及其机器人。目前,表单提交到MySQL服务器,这是我们想要的,问题是,我们不会一直连接到互联网,所以我们希望能够在本地存储来自多个表单的信息,然后一次用户具有WiFi连接,他们将整个填写的表单集合转储到MySQL上。我在编程方面不是很有经验,所以一个简单的解决方案将是首选,但任何有效的方法都将受到赞赏。其当前状态的表单可在以下位置找到:
www.avirez.com/scouting
PHP看起来像这样:
<?php
// Create connection
$con=mysqli_connect("sqlStuff","moreSQL","evenMore","lastOne");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="INSERT INTO scouting_data (teamName, teamNumber, auto, truss, high, low, human, self, robotNotes, togethor, others, teamNotes)
VALUES
('$_POST[teamName]','$_POST[teamNumber]','$_POST[auto]','$_POST[truss]','$_POST[high]','$_POST[low]','$_POST[human]','$_POST[self]','$_POST[robotNotes]','$_POST[togethor]','$_POST[others]','$_POST[teamNotes]')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
mail("MyEmail@gmail.com","New data submission","A form has been submitted to the FRC Scouting database","");
header("Location: thanks.html");
mysqli_close($con);
?>
答案 0 :(得分:0)
如果没有互联网连接,他们如何进入表格?它在本地运行吗?
如果是,那么可能一个好的解决方案是添加&#34;无法访问数据库&#34;简单地写入csv,然后在表单中添加一个按钮,用于&#34;发送无连接数据&#34;。使用您的代码的示例可能是:
if (mysqli_connect_errno())
{
//echo "Failed to connect to MySQL: " . mysqli_connect_error();
$handle = fopen("noconnection.txt",'w+');
fputcsv($handle, [
$_POST[teamName],$_POST[teamNumber],
$_POST[auto],$_POST[truss],
$_POST[high],$_POST[low],
$_POST[human],$_POST[self],
$_POST[robotNotes],$_POST[togethor],
$_POST[others],$_POST[teamNotes]
]);
fclose($handle);
}
然后为新按钮创建另一个脚本,该脚本将读取该文件并将其保存到数据库中:
if (($handle = fopen("noconnection.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$sql="INSERT INTO scouting_data (teamName, teamNumber, auto, truss, high, low, human, self, robotNotes, togethor, others, teamNotes)
VALUES
(".$data[0].",".data[1]....and so on...
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
}
fclose($handle);
}
它不是最优雅的解决方案,但我认为它更容易。 希望它有所帮助。