2016-02-29 83 views
1

我有一张从服务器获取数据,也可以编辑的表。当我更新少量数据字段时,它会完美更新,但如果我尝试一起更新大量数据字段,则大多数字段无法更新。我认为SQL比PHP慢很多,PHP不会等待SQL查询完成,导致代码假定它没有工作,因此显示错误。我也尝试睡眠(),但即使在睡眠后(2);如果我做了很多改变,它仍然会遗漏一些值。 这是我的jQuery代码:PHP的未更新在数据库中的所有数据

$(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"); 
} 
?> 
+1

请查阅以下链接http://php.net/manual/en/mysqli.error.php和http://php.net/manual/en/function.error-reporting.php 并将其应用到您的码。 –

+1

您在一个查询中引用了可能的字符串,但没有引用其他字符串。 –

+1

可能重复[何时使用单引号,双引号和反引号?](http://stackoverflow.com/questions/11321491/when-to-use-single-quotes-double-quotes-and-backticks) –

回答

1

我使用XAAMP造成的问题第5版。版本7修复了一切。