【发布时间】:2013-07-19 10:18:01
【问题描述】:
我有一个工具,可以使用 cURL 检查游戏中的可用名称,它应该向运行检查的用户显示可用名称,并关闭已使用的名称。基本上,当您对名称列表进行测试时,它会检查所有名称并将它们插入数据库中并显示它们的可用性,0 表示已使用或 1 表示可用。
现在,页面在检查完成之前不会加载,然后它们都作为一个整体插入到数据库中。我希望它动态显示检查的状态(即“检查名称 405/4938”)并在检查名称时显示加载图像,同时在检查时显示可用名称。然后在最后,删除加载图像,并获得现在完整的可用名称列表。
我该怎么做呢?我不太了解 jQuery/AJAX。现在不理想,它们最后都显示为一团。
这是名称检查线程上的代码。
<?php
$query = mysql_query("SELECT * FROM `lists` WHERE id = '$id'");
while($row = mysql_fetch_assoc($query)) {
$id = $row['id'];
$list = $row['list'];
foreach(explode("\n", $list) as $listItem) {
checkname_RS(trim($listItem));
}
}
这是检查的功能。
<?php
function checkname_RS($name) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://services.runescape.com/m=hiscore/compare.ws?user1=" . $name);
curl_setopt($ch, CURLOPT_HTTPGET, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$output = curl_exec($ch);
if (stristr($output,"Skill Stats")) {
mysql_query("INSERT INTO names (name, plat, status) VALUES ('$name', 'Runescape', '0')") or die(mysql_error());
}
if (stristr($output,"Member Rankings")) {
mysql_query("INSERT INTO names (name, plat, status) VALUES ('$name', 'Runescape', '1')") or die(mysql_error());
}
curl_close($ch);
}
【问题讨论】:
-
感谢@brasofilo 的建议。我会考虑的。
-
@brasofilo 和 RubensMariuzzo - 我很欣赏编辑,我不确定如何准确地表达所有内容,因为它对我来说有点新。我不是要问“最好的方式”,而是要“A方式”。
-
AFAIK,Ajax 是做到这一点的方式。从来没有做过这样的事情,但我想做一个 jQuery 循环并调度
inserts的范围就可以了。检查此搜索结果:stackoverflow.com/… -
浏览了那个搜索,也在谷歌上,但无济于事。也许我没有在寻找正确的东西,但我找不到答案。
-
这是一个进度指示器,所以搜索jQuery进度条
标签: php jquery mysql ajax curl