PHP不更新数据库中的所有数据

时间:2016-02-29 12:55:24

标签: php jquery mysql

我有一个从服务器获取数据的表,也可以编辑。当我更新一些数据字段时,它会完美更新,但如果我尝试一起更新大量数据字段,那么大多数字段都无法更新。

我认为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");
    }
?>

1 个答案:

答案 0 :(得分:1)

我使用XAAMP的第5版引起了这个问题。版本7修复了所有内容。