[php/mysql] problème de conversion de type

Résolu
saad0n -  
Breub62 Messages postés 3452 Statut Membre -
Bonjour,

j'ai un gros problème de cast

situation
j'importe un champ à partir d'un csv. Lorsque je fais un
var_dump( $chiffre_d_affaire)
ca donne cela:
string(14) "149 631,59 € " string(14) "103 557,88 € " string(13) "56 302,21 € "

problème
mon problème est que lorsque j'insere ce champ dans ma base mysql qui contient un champs "chiffre_d_affaire" qui est de type " decimal (8,2 ) " ( trop d'informations :) ?) les valeurs suivantes sont enregistrées :
chiffre_d_affaire
149.00
103.00
56.00
j'ai tenté de
faire un
settype ( $chiffre_d_affaire, "float" )

multiplier par 1.00

faire un cast
 $chiffre_d_affaire = (real) ($chiffre_d_affaire)

ou
floatval( $chiffre_d_affaire )

et rien ne marche

toute aide sera la bienvenue
merciiii

1 réponse

  1. Breub62 Messages postés 3452 Statut Membre 369
     
    Je pense que le problème vient de ton espace... Essaye de le supprimer à la main où avec une fonction de type substr() ou trim ou autre...
    1
    1. saad0n
       
      bien joué c'est la deuxième fois que tu me sauves :D
      c'est un problème d'espace comme tu l'avais dit mais aussi je dois remplacer la virgule par un point
      merci beaucoup
      je mets la solution au cas où ( en appelant chiffre_d_affaires champs16 )
      $champs16 = str_replace( ' ', '', $champs16);
      $champs16 = str_replace( ',', '.', $champs16);
      0
    2. Breub62 Messages postés 3452 Statut Membre 369
       
      str_replace() c'est ça que je voulais mettre à la place de autre mais ça m'est pas revenu ;-)
      Bien joué.
      Bonne continuation...
      0