2016-02-29 84 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修復了一切。