1

我想为特定用户删除表中的大量行,并且我希望用户知道他/她的内容正在删除。仅显示,删除很容易,但如何显示它是“x”百分比删除或 100-x 百分比动态保留?可以说使用引导进度条

4

3 回答 3

3

MySQL 无法预测查询将处理的时间或正在进行的过程还剩下多少时间。

您可以做的一件事是删除部分记录(即 1000 条记录)并在每次迭代后更新进度条。

于 2013-10-22T09:07:23.257 回答
1

嗯,很容易。对不起,我只是在这个阶段解释,因为我有点忙。但是如果你不明白,如果你给我发电子邮件,我可以创建代码。更好的是,我将在这里提供代码,以便其他人受益。

  1. 更好的方法是使用复选框来选择要删除的记录。在“列表”页面上,创建一个DIV以显示记录并单击“删除”按钮时(像往常)时,将有一个将处理删除的PHP文件。使用 ajax 处理这个,以便用户仍然可以看到记录列表和将显示百分比的百分比 div。

  2. 在这个 PHP 文件(处理文件)中,您需要从数据库中获取要删除的记录总数(计算选中的复选框)以及该表中的总记录数。将这两个值作为 JSON 返回。这应该由先前的 ajax 调用放入变量中。在您的索引页面(您要删除的任何内容的列表所在的位置)中,创建两个变量来保存要删除的总记录和数据库中的总记录,然后创建一个 setInterval 函数来使用 ajax 查询剩余记录的数据库。确保执行此请求的 PHP 文件正在回显数据库中剩余的记录数。(如果间隔是一秒,这将每秒查询数据库并返回总数)。

这一切意味着,您有总共要删除的记录,即 5500 您要从 56000 删除的表中的剩余记录总数

现在在 setInterval 函数中,计算百分比,即

var total_records = 5500;

var deleted_record = total_records 仍在数据库表中 - 总记录;

var 百分比 = 已删除记录数/总记录数*100;

在 setInterval 函数中,添加 $("#percentage").html(percentage) 其中百分比是要显示百分比的 div。这将根据设置的间隔显示结果。

我希望这很容易理解。他们有很多方法可以做到这一点,但为了避免混淆,这是我所拥有的最好的。我会尽快发布代码。

于 2014-02-19T10:12:08.113 回答
0

MySQL 不预测查询将花费多少时间。

然而,为了达到你的目标,你可以尝试使用触发器,但这并不能保证工作非常精确,你需要自己制定各种公式来计算进度。

另一种选择是删除每个查询已知数量的记录,以便您的php脚本可以计算进度,但这会浪费大量资源。

于 2013-10-22T09:12:11.807 回答