【问题标题】:Update query sql deletes content of other fields from database更新查询sql从数据库中删除其他字段的内容
【发布时间】:2011-05-21 13:46:38
【问题描述】:

我有一个包含以下字段的 tblUsers 数据库 1. DiaryLighton |日记利希托夫 |日记睡眠 |日记醒 |意见反馈用户 |反馈医生

当我在日记页面上时,我需要填写 DiaryLighton |日记熄灯 |日记睡眠 |点击保存按钮后 DiaryAwake。反馈页面上也应该发生同样的情况。单击按钮后,FeedbackUser |应该填写FeedbackDoctor。

但问题是,它保存了数据,但是当我保存反馈后保存日记时,反馈的内容会从表格中消失,反之亦然。

有人知道吗?这是代码。谢谢!

保存日记:

public function saveDay($p_iUserid) {
    include("Connection.php"); //open connection to database

    $sql="UPDATE tblDiary
                     SET
                          DiaryLichtAan = '".$this->Aanuur."',
                          DiaryLichtUit = '".$this->Uituur."',
                          DiaryOpstaan = '".$this->Opstaan."',
                          DiaryGaanSlapen = '".$this->Slapen."'
                     WHERE fk_UserId = ".$p_iUserid."
                     and DiaryDay = '".$this->Day."';"; 
    try
    {
        $link->query($sql); 
    }
    catch(Exception $e)
    {
        $feedback = $e->getMessage();   
    }   

    mysqli_close($link); //close connection with database
}

AJAX:

$(".submitbutton").click( function() {
    var aanuur = $(".onzichtbaar_aan").val();
    var uituur = $(".onzichtbaar_uit").val();               
    var opstaan = $(".onzichtbaar_opstaan").val();
    var slapen = $(".onzichtbaar_slapen").val();
    var feeling = $("#onzichtbaar_feeling").val();
    var day = $(".confirmday").val();

    $.post("ajax/save.php", {lichtaan: aanuur, 
                            lichtuit: uituur, 
                            slapen: slapen, 
                            opstaan: opstaan, 
                            feeling: feeling,
                            userid: <?php echo $_SESSION['id']; ?>,
                            day: day},
            function(data) {
    });
    return false;
});

保存反馈:

public function saveFeedbackP($p_iUserid) {
    include("Connection.php");

    try
    {
        $sql = "UPDATE tblDiary
                SET 
                    DiaryOpmerkingen = '".$this->Patientfb."'
                WHERE fk_UserId = ".$p_iUserid." 
                AND DiaryDay = ".$this->Day.";";
        $rResult = mysqli_query($link, $sql);
        return $rResult;
    }
    catch(Exception $e)
    {
        // no connection database
        $feedback = $e->getMessage();
    }
    mysqli_close($link);
}

【问题讨论】:

  • 它在数据库中是否正确?换句话说,如果您在第一次保存之后第二次之前检查结果,是否正确?听起来您没有提交更改。
  • @MJB 是的,如果我保存日记.. 日记中的所有内容都完美地进入数据库。如果我保存反馈,一切都完美地出现在数据库中。但是保存的另一部分消失了..真的很奇怪。
  • 你肯定只涉及一张桌子,对吧?无需担心架构差异吗?例如,一个脚本由用户运行,另一个由管理员运行?
  • 只有一个。一位用户在一张表中进行输入。
  • 表中的行数呢?在每次插入之前和之后,它是您所期望的吗?是否有很多行,所以很容易错过更改?还是只有几行,可能有 10 行,所以您没有机会查看错误的行?

标签: php mysql ajax oop


【解决方案1】:

我的第一个假设是你的 SQL 没问题,但是你的反馈代码在 saveDay 之后以空值调用,这会覆盖所有内容。

只需尝试记录所有 sql 更新,您就会发现问题的根源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-24
    • 2021-08-12
    • 2013-04-01
    • 1970-01-01
    相关资源
    最近更新 更多