Jump to content

Nombre de places après le décimal dans ps_product.price


Recommended Posts

J'essaie de mettre à jour les prix des articles avec des prix en provenance d'une source externe. Comme les prix de vente sont en HT dans la table ps_product et dans ps_product_shop et en TTC dans ma source (mais, bizarrement, quand on fait $product->getPrice() le prix est en TTC), je fais un calcul avec arrondi de mon prix avant de mettre à jour dans la base prestashop.

Si, j'arrondis le prix à 6 chiffres après le décimal, tout fonctionne bien pour 1987/2021 produits. Pour les autres, la mise à jour en base ne fonctionne pas, mais ne donne pas d'erreurs.

Si je fais le suivant dans phpMyAdmin

update ps_product_shop set price = 15.933333 where id_product = 1

j'ai une réponse '0 lignes affectées' mais pas d'erreur.

Si je fais avec un chiffre en moins

update ps_product_shop set price = 15.93333 where id_product = 1

j'ai '1 ligne affectée'

Si je fais avec un chiffre en plus

update ps_product_shop set price = 15.9333333 where id_product = 1

j'ai une erreur de données tronquées.

Et si je fais avec 5 chiffres après le décimal et ensuite je fais avec 6 chiffres, alors ça me donne '1 ligne affectée' pour les deux cas.

Il m'est impossible de trouver une logique.

Pourquoi le UPDATE fonctionnerait avec 6 chiffres après le décimal pour 98% des produits mais pas pour les autres ?

Pourquoi pour ces produits ça ne passe pas avec 6 chiffres mais aussi ça ne donne pas d'erreur ?

Pourquoi la même requête fonctionne si on fait, juste avant, la requête avec 5 chiffres ?

Le produit avec ID 1 ici c'est le 'T-shirt imprimé colibri' de la base démo.

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...