PHP SQL SELECT然后UPDATE值

I have a problem.

$db = JFactory::getDBO();

$res2 = $_data['DateSubmitted'];
//res2 returns 2014-08-31 12:03:02
$res3 = $_data['UserIp'];
//res3 returns 109.173.20.143 for example

$resdate = date('Y-m-d H:i:s', strtotime($res2));

$SubmId = $db->query("SELECT `SubmissionId` FROM `rrr_submissions` WHERE `FormId` = '20' AND `DateSubmitted`='".$resdate."' AND `UserIp`='".$res3."'");

$db->setQuery("UPDATE `rrr_submission_values` SET `FieldValue` = '".$SubmId."' WHERE `FieldName`='7_Status' AND `SubmissionId`='5682'");

$db->query();

In rrr_submissions:

  • SubmissionId is INT(11) AUTO_INCREMENT
  • FormId is INT(11)
  • DateSubmitted is datetime
  • UserIp is varchar(15)

In rrr_submission_values:

  • FieldValue is text
  • FieldName is text
  • SubmissionId is int(11)

What am I do wrong? In the result I see "1" in the FieldValue.

Try loading the result row and then calling the field value.

$db = JFactory::getDBO();

$res2 = $_data['DateSubmitted'];
//res2 returns 2014-08-31 12:03:02
$res3 = $_data['UserIp'];
//res3 returns 109.173.20.143 for example

$resdate = date('Y-m-d H:i:s', strtotime($_data['DateSubmitted']));

$SubmId = $db->query("SELECT `SubmissionId` FROM `rrr_submissions` WHERE `FormId` = '20' AND `DateSubmitted`='".$resdate."' AND `UserIp`='".$res3."'");

$row = $db->loadRow();

$SubmId = $row['SubmissionId'];

$db->setQuery("UPDATE `rrr_submission_values` SET `FieldValue` = '".$SubmId."' WHERE `FieldName`='7_Status' AND `SubmissionId`='5682'");

$db->query();