我需要一些我的项目的帮助。它是关于DVD数据库。目前我计划实现一个csv数据函数来导入dvds以及文件中的所有信息。 我将分三步完成。
第1步
- 显示我要导入的数据,构建数组
- 导入数据,构建会话数组
步骤2
- 编辑信息
步骤3
- 在更新前显示结果
- 更新数据
到目前为止它的工作原理,但我有大文件的问题。 csv数据有20列(标题,流派,情节等),对于csv中的每一行,我创建了一些数组,以便在接下来的步骤中使用它。
当我有大约500行时,浏览器在导入时经常崩溃。我没有回应。
无论如何,我现在尝试将此作为ajax调用进程。优点是,我可以定义系统处理每个调用的程序数,用户可以看到系统仍在工作,如下载/上传文件时的状态栏。
目前我试图找到一些有用的例子来说明我如何做到这一点,但到目前为止我找不到有用的东西。
也许你有一些tipps或一个例子如何工作,说每次调用处理20行,构建数组。
我想在下一步使用相同的函数构建会话数组,依此类推。
一些信息:
我使用fgetcsv()从文件中读取行。我浏览行和每列我有不同的查询,如项目ID唯一,标题存在,描述存在等。 因此,如果未输入其中一个数据,则会出现错误,即出现错误的行和列。
我感谢您的任何帮助
答案 0 :(得分:1)
虽然这不是您正在寻找的直接答案
500行不应该花费太长时间来处理,所以...这是另一个想法。
使用正确的字段结构创建临时表 然后你可以使用select语句从中提取出情节,类型等的各种独特条目,而不是沿途制作一堆数组 mysql导入将非常快速的数据
然后,您可以根据需要对其进行编辑,最后将临时但现已验证的表格中的数据插入最终表格。
在使用ajax进行操作时,你必须做一个重复的定时事件来刷新状态,问题不是20行,而是需要特定的时间段,因为你的浏览器无法知道,假设csv已上传,你可以用20行块处理它。
如果你在一个大的大文本框中输入csv,你可以通过前20行,将其余部分传递给下一页等等,将我视为潜在的混乱。
所以,虽然我知道我没有直接回答你的问题,但我希望我能为你提供替代和可能更实用的替代方案的食物。
答案 1 :(得分:1)
使用'LOAD DATA INFILE'语法。香港专业教育学院将它用于500mb及3mil行的文件,需要几秒钟而不是几分钟。