défaut de décimal

défaut de décimal - PHP - Programmation

Marsh Posté le 10-04-2008 à 12:21:02    

Bonjour.
J'ai un problème que je ne comprend vraiment pas.
j'ai un champ mysql float (8,2) dans lequel je veux mettre un chiffre:  0.55
Par phpmyadmin ça fonctionne donc j'ai considéré que mysql fonctionne....
 
Par mon appli je n'ai pas les décimals:       = 0.00
Ce phénomène est constaté depuis que j'ai installé la mdv 2008.1 avec PHP Version 5.2.5
Mes scripts n'ont absolument pas changé.... Je ne trouve pas ce qui se passe.
 

 $sql= "REPLACE INTO  `bl_fournis`(`id`,`id_fourni` , `qte` , `qte_en_stock`, `pu_ht` , `num_bl`   , `date_bl` ,
                             `id_cde` ,`id_stock` ,`num_fact` ,`code_art`,`date_fact`,`garantie`,`id_chantier`,`ttc`,`date_paie` )
         VALUES('$value') ";
 
    $result=mysql_query($sql) ;
    if(!$result) { print 'register_BLF à échoué'.mysql_error(); $result = FALSE;  }


$value = 0009725','094','100.00','100.00','0,55','13923','2008-04-10','0','0002357','','201161','0000-00-00','','0034515','0.00','0000-00-00
 
Ma valeur est bien envoyée correcteùent mais elle est mal enregistrée car si controle avec phpmyadmin le champ "pu_ht" est bien renseigné à 0.00
Il me faut trouver qui change la valeur en chemin.
 
J'ai fait l'essai avec 1.55 est le resultat est 1.00.
 
Pour une petite aide.... Merci.


---------------
Penguin online qui ne fait que des conneries, et qui aime ça. Membre du http://www.fonacon.net/
Reply

Marsh Posté le 10-04-2008 à 12:21:02   

Reply

Marsh Posté le 10-04-2008 à 14:01:39    

je ne suis aps sur que tu doivent mettre des '' autour d'un champ de type float


---------------

Reply

Marsh Posté le 10-04-2008 à 14:08:19    

flo850 a écrit :

je ne suis aps sur que tu doivent mettre des '' autour d'un champ de type float


Ni un champ de type int, mais je pense surtout que le problème est d'avoir écrit 0,55


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 10-04-2008 à 18:26:59    

non;non, j'ai écrit essentiellement avec le pavé numérique. Je ne sais pas ce que fait cette virgule.  Est ce qu'il y aurait ce type de changement paramétrédans php ?


---------------
Penguin online qui ne fait que des conneries, et qui aime ça. Membre du http://www.fonacon.net/
Reply

Marsh Posté le 10-04-2008 à 18:52:48    

En fait c'est la function abs() qui modifie le point en virgule !!!


---------------
Penguin online qui ne fait que des conneries, et qui aime ça. Membre du http://www.fonacon.net/
Reply

Marsh Posté le 11-04-2008 à 23:24:00    

J'observe aussi ailleurs que sans passer par la function abs() j'ai le même problème.  Ça devient vraiment inquiétant. Il suffit de faire

$variable += 3


et on se retrouve avec une virgule.


---------------
Penguin online qui ne fait que des conneries, et qui aime ça. Membre du http://www.fonacon.net/
Reply

Marsh Posté le 11-04-2008 à 23:26:22    

pas chez moi  
 
sauf si tu utilise number_format avec les mauvais paramètres


---------------

Reply

Marsh Posté le 12-04-2008 à 15:18:56    

Voici ce qui figure en tête de toute mes pages

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">


mais figure aussi ceci:

setlocale(LC_ALL, "fr_FR.UTF-8" );


 
Mon Pc quand à lui est en UTF8

$ locale
LANG=fr_FR.UTF-8
LC_CTYPE=fr_FR.UTF-8
LC_NUMERIC=fr_FR.UTF-8
LC_TIME=fr_FR.UTF-8
LC_COLLATE=fr_FR.UTF-8
LC_MONETARY=fr_FR.UTF-8
LC_MESSAGES=fr_FR.UTF-8
LC_PAPER=fr_FR.UTF-8
LC_NAME=fr_FR.UTF-8
LC_ADDRESS=fr_FR.UTF-8
LC_TELEPHONE=fr_FR.UTF-8
LC_MEASUREMENT=fr_FR.UTF-8
LC_IDENTIFICATION=fr_FR.UTF-8
LC_ALL=


 
Il doit surement y avoir un schmilblic la dedans...


---------------
Penguin online qui ne fait que des conneries, et qui aime ça. Membre du http://www.fonacon.net/
Reply

Marsh Posté le 13-04-2008 à 22:07:55    

Et voici encore un autre prb qui y ressemble. :heink:  

mysql_query("UPDATE `stock_gpe` SET `selection`='$flag' WHERE `id` = ' $T_obj_stok_gpe_items[$j]->id_item'   " );


PHP Catchable fatal error:  Object of class stdClass could not be converted to string


 
 
alors que si je fais  

$id_item=$T_obj_stok_gpe_items[$j]->id_item;
mysql_query("UPDATE `stock_gpe` SET `selection`='$flag' WHERE `id` = ' $id_item'   " );


 
Ça passe...


Message édité par thierryR le 13-04-2008 à 22:13:45

---------------
Penguin online qui ne fait que des conneries, et qui aime ça. Membre du http://www.fonacon.net/
Reply

Marsh Posté le 14-04-2008 à 11:34:45    

1- tu mets un $id_item entre '' , pourquoi ?
2- "UPDATE `stock_gpe` SET `selection`='$flag' WHERE `id` = ' $T_obj_stok_gpe_items[$j]->id_item'   " a rempalcer par "UPDATE `stock_gpe` SET `selection`='$flag' WHERE `id` = ". $T_obj_stok_gpe_items[$j]->id_item;


Message édité par flo850 le 14-04-2008 à 11:34:52

---------------

Reply

Marsh Posté le 14-04-2008 à 11:34:45   

Reply

Marsh Posté le 15-04-2008 à 16:48:04    

Salut
 
Le virgule vient d'un problème de locale. Cela change avec l'OS, mais j'ai constaté sur le serveur du boulot que le séparateur décimal en UTF8 est la virgule  
 
Essaye un setlocale(LC_NUMERIC, 'fr_FR@euro ISO-8859-15').
 
Cela devrait supprimer cette virgule

Reply

Marsh Posté le 15-04-2008 à 22:41:44    

C'est une bonne info... Je te remercie.


---------------
Penguin online qui ne fait que des conneries, et qui aime ça. Membre du http://www.fonacon.net/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed