【发布时间】:2011-07-24 06:49:46
【问题描述】:
向数据库添加 100 分的最简单/最快的方法是什么?请假设由于重复、错误数据等原因,所有写入都无法正常工作。
我正在尝试用恰好 100 个值更新数据库。
一旦我有一个好的数据,我需要将它添加到数据库中,我使用一个名为 updateDB 的函数。
这个函数只是将一个纬度/经度坐标写入数据库。如果有重复或写入失败,我会从 php 发送“错误”,循环应该继续收集数据,直到我有 100 个点到数据库。这是我正在使用的函数。
cct是用来防止xss的,请忽略,这个很好用。
////more above this
if(100-completed > dispatched)
dispatched++;
updateDB(lat,lng);
/// more junk and then this function
function updateDB(lat,lng)
{
var cct = $("input[name=csrf_mysite]").val();
$.ajax({
type: "POST",
url: "/form",
data: {
'lat': lat,
'lng': lng,
'id_set': id_set,
'csrf_complexity': cct },
success: function(result) {
var obj = jQuery.parseJSON(result);
if( obj.status === "OK" )
{
completed++;
var marker = new google.maps.Marker(
{
icon: markerIcon,
position: new google.maps.LatLng(lat, lng),
map: map
});
$( "#progressbar" ).progressbar( "option", {
value: completed,
max: 100
});
$("#amount").text("Getting image " + completed + " of 100");
}
},
error: function(data){
//alert(data.responseText);
},
complete: function(data){
if(completed == 100)
window.location = "/start/curate";
dispatched--;
}
});
}
此功能不起作用。所以知道为什么吗?
它应该很简单。调用 updateDB 直到它达到 100 个附加值,并且仅在不可能有额外调用时才调用 updateDB。 Dispatch 没有正确递减,所以我假设 complete 不会在每个事件上调用。
想法?或者任何其他方式来做到这一点都很棒。
【问题讨论】:
标签: php jquery mysql ajax codeigniter