Skip to main content

action de masse php avec champ perso

More
4 years 5 days ago - 4 years 4 days ago #344933 by erickb
-- HikaShop version -- : 4.6.1

je fais cette action de masse php pour recuperer les valeur du champ perso product_categories
Code:
$cats = explode(',',{product_categories}); $db = JFactory::getDBO(); foreach($cats as $c){ $q = 'INSERT IGNORE INTO #__hikashop_product_category (category_id, product_id) VALUES ('.$c.', {product_id});'; $db->setQuery($q); $db->execute(); }

mais j'ai une erreur sur explode car le champ perso product_categories n'est pas trouve

si je remplace par les valeurs $cats = array (503,803,246,605,251,263,60,711,1081); tout marche parfaitement


merci pour l'aide
Last edit: 4 years 4 days ago by erickb.

Please Log in or Create an account to join the conversation.

More
4 years 5 days ago #344934 by nicolas
Bonjour,

Pouvez-vous fournir une capture des paramètres du champ et une capture des paramètres de l'action de masse ?

Please Log in or Create an account to join the conversation.

More
4 years 5 days ago - 4 years 5 days ago #344936 by erickb
Le champ perso


l'action


l'erreur actuelle

1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$cats = explode(',' , 503,803,246,605,251,263,60,711,1081 ); $db = JFactory:' at line 1


j'ai essaye
$cats = explode(',' , '{product_categories}' );
et
$cats = explode(',' , {product_categories});
et
$cats = explode(',' , addslashes({product_categories}) );

rien ne marche

on dirait qu'il manque les quotes au string 503,803,246,605,251,263,60,711,1081
Last edit: 4 years 5 days ago by erickb.

Please Log in or Create an account to join the conversation.

More
4 years 5 days ago #344938 by nicolas
Vous utilisez une action "requête MySQL".
Dans ce cas, vous n'avez que le droit de mettre une requête MySQL, pas de code PHP.
Vous devez changer le type de l'action pout l'action "code PHP" et cela devrait fonctionner.

Please Log in or Create an account to join the conversation.

More
4 years 5 days ago - 4 years 5 days ago #344945 by erickb
c'est en dupliquant l'action et en la simplifiant pour le test que j'ai par erreur selectionne mysql si je selectionne php avec la meme action j'ai
Code:
Le code PHP de l'action est erroné : syntax error, unexpected token "{", expecting ")"

le contenu de product_categories est par exemple : 503,803,246,605,251,263,60,711,1081

le code exact est

Code:
$db = JFactory::getDBO(); $cats = explode(',',{product_categorie}); foreach($cats as $c){ $q = 'INSERT IGNORE INTO #__hikashop_product_category (category_id, product_id) VALUES ('.$c.', {product_id});'; $db->setQuery($q); $db->execute(); } $q = 'DELETE FROM #__hikashop_product_category WHERE product_id = {product_id} AND category_id = 30;'; $db->setQuery($q); $db->execute();
Last edit: 4 years 5 days ago by erickb.

Please Log in or Create an account to join the conversation.

More
4 years 5 days ago #344948 by nicolas
Le code PHP n'est pas valide.
Au lieu de :
$cats = explode(',' , {product_categories} );
il faut mettre:
$cats = explode(',' , '{product_categories}' );

Please Log in or Create an account to join the conversation.

More
4 years 5 days ago #344955 by erickb
Je viens de le re essayer et ca marche, merci

c'est pourtant ce que j'ai écris queques messages au dessus

j'ai essaye
$cats = explode(',' , '{product_categories}' );
et
$cats = explode(',' , {product_categories});
et
$cats = explode(',' , addslashes({product_categories}) );

Please Log in or Create an account to join the conversation.

More
4 years 4 days ago #344958 by nicolas
Oui, mais quand vous aviez fait ces changements, vous aviez laisser l'action "requête MySQL" au lieu de "code PHP", donc de toute façon cela ne fonctionnait pas.
The following user(s) said Thank You: erickb

Please Log in or Create an account to join the conversation.

Time to create page: 0.176 seconds
Powered by Kunena Forum