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

Résolu/Fermé
saad0n - 15 juil. 2010 à 14:12
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 - 15 juil. 2010 à 14:52
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

Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
15 juil. 2010 à 14:18
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
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
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
15 juil. 2010 à 14:52
str_replace() c'est ça que je voulais mettre à la place de autre mais ça m'est pas revenu ;-)
Bien joué.
Bonne continuation...
0