gpt4 book ai didi

javascript - 如何在 View 之间来回维护代码点火器php中的文件读取指针?

转载 作者:行者123 更新时间:2023-11-29 19:21:22 25 4
gpt4 key购买 nike

我有一个 Code Igniter Controller ,它读取上传的记录文件(excel、csv、tsv、xml 等)并将每一行作为记录写入数据库。作为文件中第一列的记录 ID 应该是唯一的。如果它已经存在于数据库中,那么在读取文件时我应该发出警报,并且根据用户的响应我将覆盖或跳过该记录并继续处理其他记录。

但是一旦我抛出警报并到达 View ,我就失去了对 Controller 的控制并且我不知道让文件指针保持滴答作响以便在收到用户的响应后我可以继续读取。

是否有解决此问题的方法,或者我们是否有其他替代方法?

最佳答案

假设我有一个这样的文件:

Roll, Name, Age, Subject
1, Praveen, 25, Cloud Computing
2, Sri Ram, 25, Cloud Computing
3, Dhiwa, 23, Computer Science
4, Vennila, 25, Cloud Computing
5, Arun, 22, Computer Science

作为 CSV 文件,我会使用 PHP 的内置函数读取它 str_getcsv以这种方式读取文件:

$csv = array_map('str_getcsv', file('data.csv'));

我会通过解析数组的第一个值来获取记录的 Roll 的集合,它是唯一条目的集合,这样我会得到如下内容:

Array (
1,
2,
3,
4,
5
)

最后我假设数据库已经具有类似的结构,例如:

+--------+------+-----+---------+
| UserId | Name | Age | Subject |
+--------+------+-----+---------+

因此,现在我将使用 SQL 的 GROUP_CONCAT 函数将所有 UserId 组合在一起并按如下方式获取:

$UserIdsFromDB = get_first_row_value("SELECT GROUP_CONCAT(`UserId`) FROM `Users`");

我会把它作为一个数组来解析,并以这种方式在 $UserIdsFromDB 中得到结果:

Array (
5,
17,
22,
23,
55,
56
57
)

我可以轻松使用 PHP 的内置函数 array_intersect找到那些重复的值,这给了我:

Array (
5
)

使用简单的 AJAX 调用,我会询问是否需要替换 5 用户或所有用户,这样:

get_user_name(5)                  // Gets the name of the user with ID 5.
count($Array_Intersect_Result) // Gets the number of matching users.

我希望这能让您有所了解。让我知道进展如何。

关于javascript - 如何在 View 之间来回维护代码点火器php中的文件读取指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32884396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com