在php / mysql中显示sql查询进度

时间:2015-02-13 10:34:45

标签: php jquery mysql ajax csv

我在php上运行mysql上的一些sql查询,首先我从html表单提交csv文件,然后从csv文件中读取第一列。对于csv中的每一行,我都在进行mysql查询。

    <form action="updateTrackingStatus.php" method="post" enctype="multipart/form-data">
            <input type="file" name="file" id="file" required/>
            <BR /><BR />
            <input type="submit" id="upload" name="submit" title="Upload" class="submitButton"/>
    </form>

直到所有查询完成,页面在浏览器中加载,然后转到updateTrackingStatus.php页面。如何在当前页面(具有表单的页面)上显示更新的进度或行数。

如果我的csv文件太大,它会加载很长时间,所以我想向用户显示进度条。

1 个答案:

答案 0 :(得分:1)

一种方法是使用Ajax。 您可以使用jQuery或其他方式使用Ajax提交文件。 然后在您的进程文件中将信息放入日志文件中并通过其他Ajax读取。

  1. 使用随机参数通过Ajax提交表单:&amp; var = {timestamp}
  2. 将有关进度的信息放在文件名等于&amp; var value的文件中。 jQuery的所有表单插件都具有进度功能,您可以从该文件中读取进度。您可以将文件放在公共文件夹中,然后使用jQuery.get()获取它的内容。
  3. 在您提交表单的页面上阅读有关Ajax进度的信息。
  4. 示例助手文件结构: 12345 \ n(总行数) 23 \ n(当前行)

    更可读但速度更慢的方式是JSON: {&#34; all&#34;:21345,&#34; current&#34;:23}

    并确保每次都覆盖该文件,并在处理完成后将其删除。