0

我到处搜索,但我发现似乎无助于解决这个问题。我有一个将数据写入 CSV 文件的 html Web 表单(在 PHP 文档中),表单下方是一个表格,用于根据关键字过滤 CSV 数据。我对该部分的现有代码没有任何问题。但是,我需要一个自动编号功能,为每个表格分配一个编号。我需要帮助,甚至从哪里开始。我对编码还比较陌生,所以任何帮助都会很棒。 编辑:这是我用来将数据写入 csv 文件的代码。

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

任何指导都会很棒。谢谢你。

4

1 回答 1

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]

}

根据您提供的代码,您可以使用我提供的函数来获取下一个 form_id,然后再将其存储到 csv 文件中。只需在打开 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 文件或在现有记录中添加表单编号。在示例中,我使用 awk 来执行此操作:

  awk '{printf "%d,%s\n", NR, $0}' < fixturerequests.csv
于 2016-07-25T15:11:02.757 回答