2014-08-31 4 views
0

J'ai un problème.PHP SQL SELECT puis UPDATE la valeur

$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(); 

Dans rrr_submissions:

  • submissionId est INT (11) AUTO_INCREMENT
  • formID est INT (11)
  • DateSubmitted est datetime
  • userip est varchar (15)

En rrr_submission_values:

  • FieldValue est le texte
  • FieldName est un texte
  • submissionId est int (11)

Qu'est-ce que je fais mal? Dans le résultat, je vois "1" dans FieldValue.

+1

Qu'espérez-vous qu'il se passe, et en quoi cela diffère-t-il des résultats que vous voyez maintenant? Qu'avez-vous essayé de résoudre le problème et comment cette tentative a-t-elle échoué? –

+0

Merci pour la réponse. Je veux que la première requête SELECT sélectionne la valeur "SubmissionId" de la table "rrr_submissions". Ensuite, je veux définir cette valeur à la variable $ SubmId. Et la dernière étape que je veux mettre à jour la valeur dans la table "rrr_submission_values" – maxbrus777

+0

Pour résoudre le problème, j'ai essayé de vérifier toutes les variables ($ res2, $ res3, $ resdate, $ SubmId). J'ai changé étape par étape la valeur "FieldValue" pour voir ce qu'il retourne. Par exemple: $ db-> setQuery ("UPDATE' rrr_submission_values' SET 'FieldValue' = '". $ Res2. "' OERE' FieldName' = '7_Status' AND 'SubmissionId' = '5682'"); – maxbrus777

Répondre

1

Essayez de charger la ligne de résultat, puis appelez la valeur du champ.

$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(); 
+0

Merci pour votre réponse. J'ai essayé d'ajouter ce code, mais maintenant il ne retourne rien du tout. – maxbrus777

+0

C'est une erreur quelque part. Maintenant j'essaye de le réparer. – maxbrus777

+0

Des suggestions? – maxbrus777