2017-06-01 47 views
0

我开发了一个程序 - 两个CSV文件的数据匹配器。 CSV文件中的数据输入示例如下。在CSV文件的特定行中添加/更新数据

user_transaction:

用户名|电子邮件|数额|空白|总| |不适用|好的|银行名称|日期

enter image description here

bank_transaction:

日期|交易细节|不适用|位置|空白| 状态 |达

enter image description here

那么我的程序做的是寻找所有的银行交易(日期和金额)匹配用户的数据。

这里做我的代码吧.. jdoodle.com/a/3Ev

任何想法? 单击完成的特定行应将数据添加到bank_transaction CSV文件的状态行中。 我在这里的目的是标记done我所有检查/确认银行交易明细。

例输出CSV:enter image description here

+0

你这样做的问题到底是什么?请分享您尝试这样做的例子。 – Cossintan

回答

1

当我点击完成特定行的,我如何将数据添加到状态行

对于形式(如您的按钮“完成” )只需设置行号(或从ftell;或fseek专注于文件位置),它会简化更新。

也不要使用CSV自定义分析器。尝试fgetcsv

// Open file, cursor at the beginning 
$stream = fopen('bank_transaction.csv', 'r+', false); 
// Take focus position 
$idx = filter_input(INPUT_POST, 'ftell', 0, FILTER_VALIDATE_INT); 
if ($idx) { 
    fseek($stream, $idx); 
    // $maxLineLength - define it earlier 
    $data = fgetcsv($stream, $maxLineLength, ',', '"'); 
    ... update required field ... 
    // Set position back after read 
    fseek($stream, $idx); 
    fputcsv($stream, $data, ',', '"'); 
} 
+0

我明白了你的观点。从我的代码中,我如何获得要添加的项目的特定行和位置? –

+0

'Done'change to'

“/>'并且在fgetscv之前加上ftell函数('for' - 不是正确的地方......但它可以是for(; $ ftell = ftell($ csv_payment_array) ,$ depositlist = fgetcsv($ csv_payment_array);){...')。 – FieryCat

+0

你能看看我更新的代码吗?似乎不工作(它只是加载整个页面)。或者我在这里错过了什么? https://www.jdoodle.com/a/3Ev –

相关问题