A voir également:
- Récupération résultat requête dans seconde requête
- Lexer resultat - Télécharger - Sport
- Resultat foot - Télécharger - Vie quotidienne
- Convertisseur récupération de texte - Guide
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Java
- Le serveur de récupération n'a pas pu être contacté - Forum MacOS
6 réponses
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 739
16 mars 2021 à 17:34
16 mars 2021 à 17:34
Bonjour,
. as tu testé tes requêtes DIRECTEMENT dans ta bdd pour voir si elles fonctionnent avant d'essayer de les mettre dans ton code php ? ... car c'est la première chose à faire.
Et puis
... ici .. le second "quoteid" .. ça ne serait pas plutôt une variable ou une valeur qui devrait s'y trouver ?
car sinon.. ta requête ne veut rien dire ...
Et quit à faire deux requêtes ( pour trouver l'id ...) autant récupérer le Somme en même temps non ?
Bref :
Il faut que tu nous précises le langage utilisé
La structure de tes tables
Les éventuelles valeurs des variables que tu utilises
Si c'est bien sqlserver que tu utilises ( ou mysql ? )
Avec quoi as tu fais la connexion à ta bdd ... je ne connais pas pquery ....
. as tu testé tes requêtes DIRECTEMENT dans ta bdd pour voir si elles fonctionnent avant d'essayer de les mettre dans ton code php ? ... car c'est la première chose à faire.
Et puis
WHERE quoteid = quoteid
... ici .. le second "quoteid" .. ça ne serait pas plutôt une variable ou une valeur qui devrait s'y trouver ?
car sinon.. ta requête ne veut rien dire ...
Et quit à faire deux requêtes ( pour trouver l'id ...) autant récupérer le Somme en même temps non ?
Bref :
Il faut que tu nous précises le langage utilisé
La structure de tes tables
Les éventuelles valeurs des variables que tu utilises
Si c'est bien sqlserver que tu utilises ( ou mysql ? )
Avec quoi as tu fais la connexion à ta bdd ... je ne connais pas pquery ....
Shelhyan
Messages postés
11
Date d'inscription
mardi 16 mars 2021
Statut
Membre
Dernière intervention
7 avril 2021
17 mars 2021 à 09:33
17 mars 2021 à 09:33
Bonjour,
Merci de ta réponse.
Alors le langage c'est PHP, et j'utilise mysql.
J'ai fais la connexion à la BDD par PDO.
J'ai testé ma requête dans la BDD en mettant en dur l'id de l'affaire que je souhaite utiliser, et ma requête fonctionne.
Enfin decompte, je travaille dans la table des affaires, et je souhaite récupérer l'id d'un devis relié à une affaire. Et c'est là que ça bloque. J'ai du mal a expliquer désolé, je pateauge bien comme il faut..
Ma requête
$update = "UPDATE vtiger_potentialscf
SET vtiger_potentialscf.cf_1096 = (SELECT SUM(total) FROM vtiger_quotes WHERE potentialid = potentialid AND quotestage != 'Corrigé')
WHERE potentialid = potentialid";
Met à jour TOUTES les affaires avec la somme de TOUT les devis de l'entreprise, autant dire, une boulette ^^
Je veux qu'elle mette à jour l'affaire concernée avec la somme des devis qui lui sont reliés..
Merci de ta réponse.
Alors le langage c'est PHP, et j'utilise mysql.
J'ai fais la connexion à la BDD par PDO.
J'ai testé ma requête dans la BDD en mettant en dur l'id de l'affaire que je souhaite utiliser, et ma requête fonctionne.
Enfin decompte, je travaille dans la table des affaires, et je souhaite récupérer l'id d'un devis relié à une affaire. Et c'est là que ça bloque. J'ai du mal a expliquer désolé, je pateauge bien comme il faut..
Ma requête
$update = "UPDATE vtiger_potentialscf
SET vtiger_potentialscf.cf_1096 = (SELECT SUM(total) FROM vtiger_quotes WHERE potentialid = potentialid AND quotestage != 'Corrigé')
WHERE potentialid = potentialid";
Met à jour TOUTES les affaires avec la somme de TOUT les devis de l'entreprise, autant dire, une boulette ^^
Je veux qu'elle mette à jour l'affaire concernée avec la somme des devis qui lui sont reliés..
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 739
17 mars 2021 à 10:34
17 mars 2021 à 10:34
Merci d'utiliser les balises de code lorsque tu poste du code sur le forum.
Ta question concernant PHP et MySQL je la déplace dans le bon forum...
et pour finir, il nous faut le reste de ton code sinon on ne pourra jamais s'en sortir.
Ta question concernant PHP et MySQL je la déplace dans le bon forum...
et pour finir, il nous faut le reste de ton code sinon on ne pourra jamais s'en sortir.
Shelhyan
Messages postés
11
Date d'inscription
mardi 16 mars 2021
Statut
Membre
Dernière intervention
7 avril 2021
17 mars 2021 à 11:16
17 mars 2021 à 11:16
Voici mon code. C'est une custom function au sein du CRM Vtiger.
<?php
function updateQuotesAmount()
{
//BDD CONNEXION
try
{
if ($bdd = new PDO('mysql:host=localhost;dbname=****;charset=utf8', '****', '*******'))
{
echo "Connection to ***** successfull \n";
}
else
{
echo "Connection to ****** failed\n";
}
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
//UPDATE QUOTES AMOUNTS POTENTIAL
global $adb;
/*$potentialId = "SELECT potentialid FROM vtiger_quotes WHERE quoteid = quoteid";
$result = mysql_query($potentialId);*/
$update = "UPDATE vtiger_potentialscf SET vtiger_potentialscf.cf_1096 = (SELECT SUM(total) FROM vtiger_quotes WHERE vtiger_quotes.potentialid = vtiger_potential.potentialid AND quotestage != 'Corrigé') WHERE vtiger_quotes.potentialid = vtiger_potential.potentialid";
$adb->pquery($update);
}
updateQuotesAmount();
//CONNEXION CLOSE
$bdd->null;
?>
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 739
17 mars 2021 à 12:13
17 mars 2021 à 12:13
C'est du pdo... Et tu as des instructions
mysql_query
???
mysql_query
???
Shelhyan
Messages postés
11
Date d'inscription
mardi 16 mars 2021
Statut
Membre
Dernière intervention
7 avril 2021
>
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
17 mars 2021 à 12:19
17 mars 2021 à 12:19
J'avoue que je n'ai pas vraiment idée de ce que je fais là. J'ai repris la custom que quelqu'un a fait et l'ai modifier pour mon utilisation, mais du coup c'est dans tout les cas nul..
Je vais essayer de reprendre ça du début et voir quelle manière propre utuliser. peux tu me dire si je peux récupérer le résultat d'une requête SQL dans une variable afin de réutiliser cette variable dans une autre requête ? Où il faut passer par une seule et même requête, et dans ce cas là, comment faire un update avec un select imbriqué pour la récupération d'un élément d'une autre table que celle où le update fera l'action ?
Je vais essayer de reprendre ça du début et voir quelle manière propre utuliser. peux tu me dire si je peux récupérer le résultat d'une requête SQL dans une variable afin de réutiliser cette variable dans une autre requête ? Où il faut passer par une seule et même requête, et dans ce cas là, comment faire un update avec un select imbriqué pour la récupération d'un élément d'une autre table que celle où le update fera l'action ?
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 739
>
Shelhyan
Messages postés
11
Date d'inscription
mardi 16 mars 2021
Statut
Membre
Dernière intervention
7 avril 2021
17 mars 2021 à 14:15
17 mars 2021 à 14:15
DOnc
Dans le code que tu nous montres ...
La connexion PDO .. non utilisée par la suite .. donc .. inutile
L'instruction mysql_query .. ce n'est pas du PDO ... donc à virer
Par contre, ce CRM semble mettre à disposition la variable $adb
Il serait bien de savoir ce que fait la méthode pquery
Savoir ce qu'elle attend comme paramètre(s)
Savoir ce qu'elle retourne comme résultat ...
Sans ça... impossible d'avancer.
Je reviens ensuite sur tes requêtes ... dans ton where .. tu ne lui passe AUCUNE variable .... ou alors.. tu as oublié le signe $ devant quoteid
... et puis.. elle vient d'où cette variable ? Ce n'est pas un paramètre de la fonction.... donc elle se trouve où lorsque tu appelles cette fonction ??
Dans le code que tu nous montres ...
La connexion PDO .. non utilisée par la suite .. donc .. inutile
L'instruction mysql_query .. ce n'est pas du PDO ... donc à virer
Par contre, ce CRM semble mettre à disposition la variable $adb
Il serait bien de savoir ce que fait la méthode pquery
$adb->pquery()
Savoir ce qu'elle attend comme paramètre(s)
Savoir ce qu'elle retourne comme résultat ...
Sans ça... impossible d'avancer.
Je reviens ensuite sur tes requêtes ... dans ton where .. tu ne lui passe AUCUNE variable .... ou alors.. tu as oublié le signe $ devant quoteid
... et puis.. elle vient d'où cette variable ? Ce n'est pas un paramètre de la fonction.... donc elle se trouve où lorsque tu appelles cette fonction ??
Shelhyan
Messages postés
11
Date d'inscription
mardi 16 mars 2021
Statut
Membre
Dernière intervention
7 avril 2021
Modifié le 19 mars 2021 à 09:47
Modifié le 19 mars 2021 à 09:47
Alors, j'ai modifié ma requête, et voilà où j'en suis. La MAJ du montant des devis dans les Affaires, avec la somme des devis reliés à cette affaire, se fait corectement. Le soucis maintenant, c'est qu'elle se fait dans toutes les affaires en même temps, au lieu de se faire uniquement dans l'affaire reliée au devis qui est éditer.
Donc voilà ma requête :
Comment récupérer l'id du devis et celui de l'affaire relié au devis ? Et comment l'utiliser dans ma requête ?
Donc voilà ma requête :
//UPDATE SALESORDER AMOUNTS POTENTIAL function updateSalesOrderAmount() { //BDD CONNEXION try { if ($bdd = new PDO('mysql:host=localhost;dbname=******;charset=utf8', '****', '*******')) { echo "Successfull"; } else { echo "Failed"; } } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } //SQL REQUEST $quoteStage = "Corrigé"; $updateQ = $bdd->prepare("UPDATE vtiger_potentialscf INNER JOIN vtiger_quotes SET vtiger_potentialscf.cf_1096 = (SELECT SUM(total) FROM vtiger_quotes WHERE vtiger_quotes.potentialid = vtiger_potentialscf.potentialid AND quotestage != :quoteStage) WHERE vtiger_potentialscf.potentialid = vtiger_quotes.potentialid"); $updateQ->execute(array('quoteStage' => $quoteStage)); }
EDIT : Correction des balises de code ( ajout du LANGAGE pour avoir la coloration syntaxique et la numération des lignes de code )
Je souhaite récupérer l'id du devis qui est édité au lancement de la requête, pour que celle ci se fasse uniquement dans l'affaire reliée, et non toutes les affaires de l'entreprise. Les montants sont toutefois bons dans toutes les affaires.Comment récupérer l'id du devis et celui de l'affaire relié au devis ? Et comment l'utiliser dans ma requête ?
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 739
19 mars 2021 à 09:49
19 mars 2021 à 09:49
Bonjour,
Il faudrait savoir comment est lancé cette fonction ... et voir si tu peux lui passer en paramètre l'id correspondant.
Mais là .. ça n'a rien à voir avec mysql ou le php à proprement parlé ... c'est plus une question de connaissance du fonctionnement du cms que tu utilises.
Il faudrait savoir comment est lancé cette fonction ... et voir si tu peux lui passer en paramètre l'id correspondant.
Mais là .. ça n'a rien à voir avec mysql ou le php à proprement parlé ... c'est plus une question de connaissance du fonctionnement du cms que tu utilises.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Shelhyan
Messages postés
11
Date d'inscription
mardi 16 mars 2021
Statut
Membre
Dernière intervention
7 avril 2021
19 mars 2021 à 09:57
19 mars 2021 à 09:57
Elle est lancé via un Workflow, à la mise à jour d'un devis. J'utilise Vtiger comme CRM. J'ai essayer beaucoup de choses différentes, mais je n'arrive pas à récupérer cet id..
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 739
19 mars 2021 à 10:40
19 mars 2021 à 10:40
Oui ben faut regarder comment marche Vtiger
Je ne connais pas ce CRM ...
Je ne connais pas ce CRM ...