Format de nombre non accepter dans Mysql

manich -  
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   -
bonjours,

Mon scripte récupère des données d'un fichier excel et les stock dans une base sous Mysql
lors de l'insertion j'ai constater que Mysql n'accepte pas les nombre de format comptabilité (ie: 50 000.00) le nombre faut qu'il soit de format standard (ie: 50000.00).

y aurait il une fonction qui me perme de convertir ce format avant l'insertion dans la base, ou bien quelqu'un aurais une autre solution pour mon probleme,

Merci d'avance pour vos réponses.
A voir également:

4 réponses

avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 509
 
$nombre = (float) $nombre;
0
arthezius Messages postés 3756 Statut Membre 475
 
Tu veux juste enlever l'espace?
Tu peux le faire simple avec:
$chaine = str_replace(" ","",$chaine);
0
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 509
 
La solution d'arthezius est bonne mais comme c'est un nombre décimal, alors pourquoi la variable de type string ? Autant convertir la variable en float (ou int pour un entier).
0
arthezius Messages postés 3756 Statut Membre 475
 
J'ai testé ta solution (que je ne connaissais pas) mais ça n'enlève pas l'espace entre le 50 et 000 du 50 000.
Voici ce que j'ai testé:
<?php
$nombre = '50 000.00';
$nombre = (float) $nombre;
echo $nombre;
?>

ça m'affiche 50.
0
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 509
 
Effectivement.
La transformation en float s'arrête dés que ce n'est plus un nombre ou un point qui est trouvé.
Le mieux est d'appliquer ta solution puis la mienne :
$nombre = (float) str_replace(' ', '', $nombre);

Ainsi, si tu fais un var_dump sur la variable, le type sera vraiment un nombre décimal est pas une chaine.
0
manich
 
ca marche !!
j'ai opter pour la solution de suppression du vide,
merci pour votre aide Avion F16 et Arthezius.
0