简体   繁体   中英

Previous updated record reverts when updating a new record MySQL PHP

Good day to all. I'm trying to make a task tracking module for my system. The logic is, whenever I assign a task to a user, the system updates the task to "IsTaken" meaning the particular user is responsible for that task. Upon updating, it creates an entry into "user_task" table which basically ties together the task and the user table. Whenever I assign a task to somebody it's fine. But when I do it again, the previous task record's IsTaken field reverts back to 0. I try to re-assign it, but again, the previous record reverts. It's quite weird. I'm using XAMPP, MySQL and PHP. I'm hoping I'm not the only one experiencing this. Any help would be much appreciated.

Here are my tables:

CREATE TABLE IF NOT EXISTS `task` (
  `Task_No` int(11) NOT NULL AUTO_INCREMENT,
  `Task_Name` varchar(100) NOT NULL,
  `Task_Desc` varchar(450) DEFAULT NULL,
  `Task_DateCreated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Task_IsTaken` tinyint(1) NOT NULL,
  PRIMARY KEY (`Task_No`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

CREATE TABLE IF NOT EXISTS `user_task` (
  `UT_No` int(11) NOT NULL AUTO_INCREMENT,
  `User_Email` varchar(100) NOT NULL,
  `Task_No` int(11) NOT NULL,
  `Task_Duration` varchar(20) NOT NULL,
  `Task_DateTaken` date DEFAULT NULL,
  `Task_DateFinished` timestamp NULL DEFAULT NULL,
  `Task_IsIssue` tinyint(1) NOT NULL,
  PRIMARY KEY (`UT_No`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

And here are my scripts (from the form):

//Process - Insert Task
if(isset($_POST['btnCreateTask']))
{
if($_POST['taskName']!=NULL)
{
$taskName = mysql_real_escape_string ($_POST['taskName']);
$taskDesc = mysql_real_escape_string ($_POST['taskDesc']);
$insertTask = "INSERT INTO task(Task_Name, Task_Desc, Task_IsTaken) VALUES('$taskName', '$taskDesc', 0)";
$sqlResult1 = mysql_query($insertTask);}
else
{
    echo "No task name given";
    $errorCode = 1;
}
}


if(isset($_POST['btnAssignTask']))
{
    if($_POST['assignTaskName']!=NULL)
{
    $assigntaskName = mysql_real_escape_string($_POST['assignTaskName']);
    $assigntaskNo = mysql_real_escape_string($_POST['assignTaskNo']);
    $assigntaskOwner = mysql_real_escape_string($_POST['assignTaskOwner']);
    $assigntaskDuration = mysql_real_escape_string($_POST['assignTaskDuration']);
    $updateUpcomingTask = "UPDATE task SET Task_IsTaken = '1' AND Task_No = '$assigntaskNo'";
    $createUserTask = "INSERT INTO user_task (User_Email, Task_No, Task_Duration, Task_DateTaken, Task_DateFinished) 
                        VALUES ('$assigntaskOwner', '$assigntaskNo', '$assigntaskDuration', '$now', NULL)";
    $sqlResult2 = mysql_query($updateUpcomingTask);
    $sqlResult3 = mysql_query($createUserTask);
}
else
{
    echo "No task selected";
    $errorCode = 2;
}
}

Your code should be changed to:

if(isset($_POST['btnAssignTask']))
{
    if($_POST['assignTaskName']!=NULL)
{
    $assigntaskName = mysql_real_escape_string($_POST['assignTaskName']);
    $assigntaskNo = intval($_POST['assignTaskNo']);
    $assigntaskOwner = mysql_real_escape_string($_POST['assignTaskOwner']);
    $assigntaskDuration = mysql_real_escape_string($_POST['assignTaskDuration']);
    $updateUpcomingTask = "UPDATE task SET Task_IsTaken = '1' WHERE Task_No = $assigntaskNo";
    $createUserTask = "INSERT INTO user_task (User_Email, Task_No, Task_Duration, Task_DateTaken, Task_DateFinished) 
                    VALUES ('$assigntaskOwner', '$assigntaskNo', '$assigntaskDuration', '$now', NULL)";
    $sqlResult2 = mysql_query($updateUpcomingTask);
    $sqlResult3 = mysql_query($createUserTask);
}
else
{
    echo "No task selected";
    $errorCode = 2;
}
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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