HTML形成本地存储

时间:2014-03-14 00:26:56

标签: javascript php mysql

我最近为我的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);

?>

1 个答案:

答案 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);
}

它不是最优雅的解决方案,但我认为它更容易。 希望它有所帮助。