我有一个从服务器获取数据的表,也可以编辑。当我更新一些数据字段时,它会完美更新,但如果我尝试一起更新大量数据字段,那么大多数字段都无法更新。
我认为SQL比PHP要慢得多,而且PHP没有等待SQL查询完成,导致代码认为它不起作用,因此显示错误。我也尝试过sleep(),但即使在sleep(2);
之后,如果我做了很多改动,它仍会遗漏一些值。 这是我的jQuery代码:
$(document).ready(function(){
$("#edit").click(function(){
$("td").attr('contenteditable', 'true');
});
var old_message;
$("td").click(function(){
old_message = $(this).text();
});
$("td").blur(function(){
var new_message = $(this).text();
if(old_message!=new_message)
{
$(this).addClass("changed");
old_message = null;
new_message = null;
}
});
$("#submit").click(function(){
$(".changed").each(function(){
var row_num = $(this).siblings().eq(0).text();
var col_name = $(this).attr("id");
var value = $(this).text();
var current = $(this);
$.post("../php/update_table.php",
{
id:row_num,
cn:col_name,
data:value
},
function(response,status){
if(response=="updated")
{
$(current).removeClass("changed");
}
else
{
alert("Failed");
}
});
});
location.reload(true);
});
});
这是我的update.php:
<?php
if(isset($_POST['id']) && isset($_POST['cn']) && isset($_POST['data']))
{
$id = $_POST['id'];
$col_name = $_POST['cn'];
$data = $_POST['data'];
include "mysql_login.php";
$mysql_database = "bus_database";
$connect = mysqli_connect($host, $mysql_user, $mysql_pass, $mysql_database) or die("Couldn't Connect To The Database");
$time = false;
if($col_name=='a1_a1t' || $col_name=='a2_a2t' || $col_name=='d1_d1t' || $col_name=='d2_d2t')
{
$t_data = substr($data,0,-2);
$tz_data = substr($data, 9);
$t = substr($col_name,0, 2);
$tz = substr($col_name, 3);
$time = true;
}
if($time)
{
if($t_data == '' || $tz_data == '')
{
$t_data = "NULL";
$tz_data = "NULL";
$result = mysqli_query($connect, "UPDATE buses SET $t=$t_data, $tz=$tz_data WHERE id='$id'");
}
else
{
$result = mysqli_query($connect, "UPDATE buses SET $t='$t_data', $tz='$tz_data' WHERE id='$id'");
}
if($result)
{
echo("updated");
}
else
{
echo("failed");
}
}
else if($col_name == 'route' || $col_name == 'bus_num')
{
$result = mysqli_query($connect, "UPDATE buses SET $col_name='$data' WHERE id='$id'");
if($result)
{
echo("updated");
}
else
{
echo("failed");
}
}
mysqli_close($connect);
}
else
{
echo("Failed");
}
?>
答案 0 :(得分:1)
我使用XAAMP的第5版引起了这个问题。版本7修复了所有内容。