【问题标题】:show sql query progress in php/mysql在 php/mysql 中显示 sql 查询进度
【发布时间】:2015-04-14 09:01:57
【问题描述】:

我正在从 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 文件很大,它会加载很长时间,所以我想向用户显示进度条。

【问题讨论】:

    标签: php jquery mysql ajax csv


    【解决方案1】:

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

    1. 通过带有随机参数的 Ajax 提交表单:&var={timestamp}
    2. 将进度信息放入文件名等于 &var 值的文件中。 jQuery 的所有表单插件都具有进度功能,您可以从文件中读取进度。您可以将文件放在您的公用文件夹中,然后使用 jQuery.get() 获取它的内容。
    3. 在您提交表单的页面上阅读有关 Ajax 进度的信息。

    示例帮助文件结构: 12345\n(总行数) 23\n(当前行)

    更具可读性但速度较慢的方式是 JSON: {“全部”:21345,“当前”:23}

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-16
      • 1970-01-01
      • 1970-01-01
      • 2011-10-06
      • 2015-01-20
      • 1970-01-01
      相关资源
      最近更新 更多