2016-07-25 82 views
0

我到處搜索過,但沒有發現似乎有助於解決此問題。我有一個將數據寫入CSV文件的html web表單(在PHP文檔中),而表單下方是一個表格,它根據關鍵詞將CSV數據過濾回來。我對這部分的現有代碼沒有任何問題。但是,我需要一個自動編號功能,爲每個表單分配一個編號。即使從哪裏開始,我都需要幫助。我對編碼還比較陌生,所以任何幫助都會很棒。 編輯:以下是我用於將數據寫入csv文件的代碼。將自動編號分配給HTML表格條目

if($_POST['formSubmit'] == "Submit") 
{ 
    $fs = fopen("fixturerequests.csv","a"); 
    fwrite($fs,$varFixNum . ", " . $varRequester . ", " . $varDept . ", " . $varSupervisor . ", " . $varDesc . ", " . $varParts . ", " . $varWC . ", " . $varAddinfo . ", " . $varDateReq . ", " . $varDateNeed . ", " .$varStatus . "\n"); 
    fclose($fs); 

    header("Location: successfullysubmitted.php"); 
    exit; 
} 

任何指導都很好。謝謝。

+0

這裏是創建表單如果每個表格是一個CSV文件中的所有您需要做的是行的代碼?統計csv文件有多少行。 –

+0

當然,如果行被刪除,並且你希望表單的數量作爲一個id並保持不變,那麼你應該在你的csv中指定另一個字段,比如'form_id',並且每次你想添加一個表單時只需要得到最後一個從csv記錄得到這個記錄的form_id並添加1,這一切都取決於你想要什麼。如果你給更多的信息,我們將能夠幫助你更多 –

+0

@GeorgePant第二個建議你聽起來像是最好的選擇 - 拉取前一個號碼並添加一個。這就是我在上面的代碼中嘗試的嘗試,但正如我之前提到的,我對編碼還很陌生。是的,每個對錶單問題的回覆都是新的一行。您是否希望我編輯我的回覆以包含該代碼?或者它不相關? –

回答

1

您可以使用此功能

function next_available_form_id(){ 

    $rows = file('fixturerequests.csv'); //put our csv file into an array 

    if(empty($rows)) return 1;   //if our csv is empty we start from 1 

    $data = str_getcsv(array_pop($rows)); //array_pop gets the last row 

    return $data[0]+1;   //we get first field and add 1 to it 
            //Just use the field where you store the form number 
            //e.g if you store the form number in the 
            //4th field replace $data[0] with $data[3] 

} 

根據您所提供,你可以使用我提供將其存儲在CSV file.Just使這個修改您的代碼後,之前獲得下一個form_id功能的代碼打開CSV文件:

$fs = fopen("fixturerequests.csv","a"); 
$form_id=next_available_form_id(); //ADD THIS to get the next available id 

//And insert $form_id as the first field in your csv file 
fwrite($form_id,$fs,$varFixNum . ", " . $varRequester . ", " . $varDept . ", " . $varSupervisor . ", " . $varDesc . ", " . $varParts . ", " . $varWC . ", " . $varAddinfo . ", " . $varDateReq . ", " . $varDateNeed . ", " .$varStatus . "\n"); 

注意: 當然,因爲CSV你現在已經不具備作爲form_id您應該從頭開始創建CSV文件中的第一場或者在現有records.In我用awk做到這一點的例子補充形式的數字:

awk '{printf "%d,%s\n", NR, $0}' < fixturerequests.csv 
+0

它完美的工作!非常感謝您的幫助! –

+0

我的回答很快就幫到了你 –