繁体   English   中英

如何使用UPDATE查询来更新另一个表

[英]How to use UPDATE query to update another table

在Exam1表中,可以很好地添加ID,examname和exam_id值。 但是,当我尝试使用UPDATE查询将点更新到另一个表(问题)时,它不起作用。

        for($i = 1; $i<$arraysize; $i++){ //For every question

            $questionid = $array[$i]['questionid'];
            $points     = $array[$i]['points'];
            $ID = $ID+1;

            $queue ="INSERT INTO Exam1 (ID, examname, exam_id) VALUES
            ('$questionid','$examname', '$exam_id')";
            $result = mysqli_query($connection,$queue);


            $queue1 ="INSERT INTO points (ID, points) VALUES
            ( '$ID' , '$points')";
            $result1 = mysqli_query($connection,$queue1);



         $sql = "UPDATE Question SET points='$points' where ID ='$questionid'";

           $result1 = mysqli_query($connection,$sql);

        }

在此处输入图片说明

 $myquery = "UPDATE Question SET points='$points' WHERE ID ='" . $questionid . "'";

   $resultset = mysqli_query($connection, $myquery);

请尝试这个

首先要小心int类型,并将其值放在UPDATEINSERT并用引号引起来:发生类型强制转换,并且可能会导致结果,这是您可能无法预期的。

其次,理解您的数据库数据模型仍然很麻烦:您正在将Exam1.IDQuestion.ID一起加入。 对我来说,两者似乎都是该实体的替代物。 否则,我将无法理解Exam_ID列的Exam_ID (在您的情况下很可能来自表Question )。 因此,在我看来,您的UPDATE语句的WHERE子句不完整(您是否还打算限制EXAM_ID ?否则,无论考试如何,您都可能将所有问题的分数都设置为20。)

如果我弄错了,请提供有关数据库模式设置的详细概述,至少包括下表的主键:

  • Exam1
  • points
  • Question

以便我们进一步为您提供帮助(和我在此处调整答案)。 另外,我们还可以了解您如何看待表之间的外键关系,这可能有助于我们为您提供帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM