Faire un INSERT INTO selon la valeur d'un champ
Fermé
Shelhyan
Messages postés
11
Date d'inscription
mardi 16 mars 2021
Statut
Membre
Dernière intervention
7 avril 2021
-
Modifié le 6 avril 2021 à 13:53
Shelhyan Messages postés 11 Date d'inscription mardi 16 mars 2021 Statut Membre Dernière intervention 7 avril 2021 - 7 avril 2021 à 13:17
Shelhyan Messages postés 11 Date d'inscription mardi 16 mars 2021 Statut Membre Dernière intervention 7 avril 2021 - 7 avril 2021 à 13:17
A voir également:
- Faire un INSERT INTO selon la valeur d'un champ
- Touche insert - Guide
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Disk boot failure insert system disk and press enter - Guide
- Pas de touche insert sur mon clavier - Forum Clavier
- La valeur saisie doit être numérique - Forum Bureautique
7 réponses
yg_be
Messages postés
23392
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 décembre 2024
Ambassadeur
1 556
6 avril 2021 à 17:16
6 avril 2021 à 17:16
bonjour,
nous as-tu expliqué d'où venait cette quantité?
nous as-tu expliqué d'où venait cette quantité?
Shelhyan
Messages postés
11
Date d'inscription
mardi 16 mars 2021
Statut
Membre
Dernière intervention
7 avril 2021
6 avril 2021 à 19:03
6 avril 2021 à 19:03
D'accord, pourrais tu me donner la syntaxe pour faire cela ? J'avoue que je suis débutante et je nage un peu. La requête pour déterminer la quantité, je l'ai :
Mais comment l'utiliser dans une boucle ?
$qty = $adb->pquery("
SELECT quantity
FROM vtiger_inventoryproductrel, vtiger_productcf, vtiger_products
WHERE vtiger_inventoryproductrel.productid = vtiger_productcf.productid
AND vtiger_productcf.productid = vtiger_products.productid
AND vtiger_inventoryproductrel.id =
(SELECT purchaseorderid
FROM vtiger_purchaseorder
WHERE purchaseorderid = ?)
AND vtiger_productcf.cf_1929 = ?",
array($cfr, $assetManagement));
Mais comment l'utiliser dans une boucle ?
yg_be
Messages postés
23392
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 décembre 2024
1 556
6 avril 2021 à 20:20
6 avril 2021 à 20:20
suggestion, non testée:
$sqlsource = " INSERT INTO table_test (test, color, infos, non_liaison, statut, Nomcompte, Assignement) SELECT productname, vtiger_inventoryproductrel.productid, 'À renseigner', productname, 'In Service', '31072', ? FROM vtiger_inventoryproductrel, vtiger_productcf, vtiger_products WHERE vtiger_inventoryproductrel.productid = vtiger_productcf.productid AND vtiger_productcf.productid = vtiger_products.productid AND vtiger_inventoryproductrel.id = (SELECT purchaseorderid FROM vtiger_purchaseorder WHERE purchaseorderid = ?) AND vtiger_productcf.cf_1929 = ?"; $sqlparams= array($current_user_id, $cfr, $assetManagement)); $qtyrow1 = $qty->fetch(); $quantite= $qtyrow1[0]; for ($i = 1; $i <= $quantite; $i++) { $sql = $adb->pquery($sqlsource, $sqlparams); }
Shelhyan
Messages postés
11
Date d'inscription
mardi 16 mars 2021
Statut
Membre
Dernière intervention
7 avril 2021
7 avril 2021 à 08:40
7 avril 2021 à 08:40
Ceci ne fonctionne pas.. Mes deux requêtes fonctionnent bien, mais la boucle ne va pas. Connais tu une autre syntaxe ?
yg_be
Messages postés
23392
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 décembre 2024
1 556
7 avril 2021 à 11:06
7 avril 2021 à 11:06
"la boucle ne va pas": peux-tu donner quelques faits?
as-tu pu vérifier la valeur de
as-tu pu vérifier la valeur de
$quantite?
Shelhyan
Messages postés
11
Date d'inscription
mardi 16 mars 2021
Statut
Membre
Dernière intervention
7 avril 2021
7 avril 2021 à 11:10
7 avril 2021 à 11:10
Non je n'ai pas pu vérifier.. Enfaite la fonction ne passe pas dans la boucle du tout; du coup je n'ai pas pu récupérer la valeur. Sur phpmyadmin, la requête amène bien les valeurs attendues.
Je suis paumée, désolé si j'explique mal la situation :/
Je suis paumée, désolé si j'explique mal la situation :/
yg_be
Messages postés
23392
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 décembre 2024
1 556
7 avril 2021 à 12:04
7 avril 2021 à 12:04
montre peut-être le code adapté.
$quantiteest assigné hors de la boucle, donc je ne comprends pas ce qui t'empeche de récupérer la valeur.
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
7 avril 2021 à 13:07
7 avril 2021 à 13:07
function createAssetsFromPO($entity, $currentUser)
{
global $adb;
$cfr = vtws_getIdComponents($entity->getId());
$cfr = $cfr[1];
$currentUser = Users_Record_Model::getCurrentUserModel();
$current_user_id=$currentUser->get('user_name');
$assetManagement = "Oui";
$qty = $adb->pquery("
SELECT quantity
FROM vtiger_inventoryproductrel, vtiger_productcf, vtiger_products
WHERE vtiger_inventoryproductrel.productid = vtiger_productcf.productid
AND vtiger_productcf.productid = vtiger_products.productid
AND vtiger_inventoryproductrel.id =
(SELECT purchaseorderid
FROM vtiger_purchaseorder
WHERE purchaseorderid = ?)
AND vtiger_productcf.cf_1929 = ?",
array($cfr, $assetManagement));
$sqlsource = "
INSERT INTO table_test (test, color, infos, non_liaison, statut, Nomcompte, Assignement)
SELECT productname, vtiger_inventoryproductrel.productid, 'À renseigner', productname, 'In Service', '31072', ?
FROM vtiger_inventoryproductrel, vtiger_productcf, vtiger_products
WHERE vtiger_inventoryproductrel.productid = vtiger_productcf.productid
AND vtiger_productcf.productid = vtiger_products.productid
AND vtiger_inventoryproductrel.id =
(SELECT purchaseorderid
FROM vtiger_purchaseorder
WHERE purchaseorderid = ?)
AND vtiger_productcf.cf_1929 = ?";
$sqlparams= array($current_user_id, $cfr, $assetManagement));
$qtyrow1 = $qty->fetch();
$quantite= $qtyrow1[0];
for ($i = 1; $i <= $quantite; $i++) {
$sql = $adb->pquery($sqlsource, $sqlparams);
}
}
Voici le code de ma fonction.
yg_be
Messages postés
23392
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 décembre 2024
Ambassadeur
1 556
7 avril 2021 à 13:15
7 avril 2021 à 13:15
bonjour,
peux-tu préciser le langage (php) quand tu utilises les balises de code? explications: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
le soucis est probablement dans les deux lignes:
ne peux-tu pas récupérer la valeur de
peux-tu préciser le langage (php) quand tu utilises les balises de code? explications: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
le soucis est probablement dans les deux lignes:
$qtyrow1 = $qty->fetch(); $quantite= $qtyrow1[0];
ne peux-tu pas récupérer la valeur de
$quantite?
Shelhyan
Messages postés
11
Date d'inscription
mardi 16 mars 2021
Statut
Membre
Dernière intervention
7 avril 2021
Modifié le 7 avril 2021 à 13:32
Modifié le 7 avril 2021 à 13:32
Oui dsl je le ferai ! Oui le soucis vient surement d'içi. Enfin de compte, le résultat est qu'aucune ligne n'est ajouter par mon INSERT. Comme si du coup il récupère une valeur nulle pour $quantite. et il ne rentre pas dans la boucle, au final il ne ce passe rien du tout.
6 avril 2021 à 17:19
6 avril 2021 à 17:57
Ensuite, faire une boucle en php pour appeler plusieurs fois pquery pour faire plusieurs INSERT.