2014-03-14 87 views
0

我最近爲我的FRC團隊(FIRST Robotics團隊)做了一個快速的HTML表單來評估其他團隊和他們的機器人在比賽中。目前,表單提交給MySQL服務器,這是我們想要的,問題是,我們不會隨時連接到互聯網,所以我們希望能夠在本地存儲多種形式的信息,然後一次用戶有WiFi連接,他們將所有填好的表單轉儲到MySQL上。我在編程方面不是很有經驗,所以一個簡單的解決方案將是首選,但任何有效的東西將不勝感激。它的形式是當前狀態,可以發現:HTML表格本地存儲

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("[email protected]","New data submission","A form has been submitted to the FRC  Scouting database",""); 
header("Location: thanks.html"); 

mysqli_close($con); 

?> 

回答

0

如果沒有互聯網連接,他們怎麼弄到表單?它在本地運行嗎?

如果是這樣,那麼可能一個好的解決方案是在「不訪問數據庫」的情況下添加一個簡單的寫入csv,然後在「發送無連接數據」的表單中添加一個按鈕。恩例如,使用您的代碼可能是:

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

它不是最優雅的解決方案,但我認爲它更容易。 希望它有幫助。