2016-03-22 70 views
0

這只是它的聲音...如何創建一個條目ID

我有一個HTML5表單,沒有數據庫。 (我沒有建議/支持這個,我只是適應環境。)

爲了保存服務器上的條目,我決定將它們寫入同級.CSV文件。

我需要引用這些條目的邏輯以後的道路,這是在條目號必要性進來一個簡單的方法

我周圍的一派,找不到任何方法 - 程序性和程序化 - 這可能是有用的。儘管這可能是由於我缺乏經驗。

總結:如何在每次提交表單時運行的PHP文件中創建本地唯一的Entry ID字符串/ int?

+0

爲什麼不能有另一個具有實際ID的文件? –

+0

如何? @ KIMB-technologies – ExcellentSP

+1

我甚至不確定你在問什麼。你只是在尋找這個?:http://php.net/manual/en/function.uniqid.php – David

回答

1

您可以使用另一個文本文件,您可以在其中存儲實際ID。

e.g:

<?php 
    //Get last ID 
    $lastid = file_get_contents('last_id.txt'); 
    if(empty($lastid)){ $lastid = 0); 
    $thisid = $lastid + 1; 

    //save post data to CSV 
    //use $lastid 

    //save for next time 
    file_put_contents('last_id.txt', $thisid); 

?> 

如果我有你的觀點正確。

編輯:

你有一個POST請求並將數據保存到CSV文件。你需要一個唯一的ID來標記行。

如:您的文件看起來像:

csv_data.txt

1, Max, Mustermann 
2, Otto, Muster 

last_id.txt

2 

如果一個新的請求到達服務器,你會得到最後添加ID out_id.txt並增加此值。這個增加的價值將是你下一個唯一的ID。 現在你會在下一行添加到您的CSV文件:

3, Ben, Miller 

,並在結束時,你將節省的唯一ID(在這種情況下3)您last_id.txt。 當收到下一個請求時,您將提升3到4等等......

+0

你確實有我的觀點。如果您想對問題進行重新說明以使其更清楚,請隨時取消。 – ExcellentSP

+0

不要忘記文件鎖定。請參閱http://php.net/manual/en/function.flock.php - 否則,如果兩個用戶一次導致系統執行兩次寫入操作,則可能會遇到麻煩。 – HoldOffHunger

+0

@HoldOffHunger所以使用這種方法,我將不得不爲創建一個隊列,因爲入口日誌將被鎖定而被暫停處理。 – ExcellentSP

1

您可以使用uniqid()來獲取唯一的ID。

如果您需要對應的文件數一個數字,那麼你可以使用:

$directory = "/csv_folder"; 
$entryID = count(scandir($directory)) - 2; 

這對在該CSV文件的數目上傳文件夾。除非你從那裏刪除文件,否則它將是一個獨特的連續編號。

+0

我喜歡簡單易用的方法,但不會像正常條目ID那樣統計CSV中的條目總數。 – ExcellentSP

+0

我添加了一個替代我的答案,給你已經上傳的文件的數量。 – trincot

+0

你會建議使用每個CSV VS. 1條目。 1個CSV用於所有條目? – ExcellentSP