Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/04/2011, 11h43   #1
Invité de passage
 
Inscription : avril 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 7
Points : 0
Points : 0
Par défaut probleme de virgule avec la base

Bonjour a tous,

Je fais actuellement une montée de version php4 vers php5 d'un appli qui gère les astreintes
Mon but est de permettre de modifier les taux d'astreintes.
Par exemple etre d'astreinte le dimanche a un taux superieur à un jour de la semaine.

Le souci:
quand je veux modifier celui ci je ne peux que pour les valeurs entière je ne peut pas mettre de virgule même si l'appli me dit ok elle ne fait rien des qu'il y a des virgule

La base accepte pourtant les virgule (NUMBER (5,3))

merci d'avance

PS : quand j'ajoute dans la base par exemple 1,45 ca marche mais ca affiche 1
rokhanjb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 12h07   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
Hello

Les floats en PHP utilisent le . et non la virgule. Mais tu peux faire ça:
Code :
1
2
3
 
$a = "11,2";
var_dump((float)str_replace(',','.',$a));
MySQL utilise également le point pour les flotants.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 13h08   #3
Invité de passage
 
Inscription : avril 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 7
Points : 0
Points : 0
merci je vais test sinon c'est une base oracle et elle prend que les ,
rokhanjb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 13h27   #4
Invité de passage
 
Inscription : avril 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 7
Points : 0
Points : 0
Re j'ai fait ca si j'ai bien compris ca devrait marcher mais ca ne marche pas

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
 
if(isset($_REQUEST["modifier"])){ // action au clique sur le bouton
 
$pa=$_REQUEST["pa"];             //
$pi=$_REQUEST["pi"];               // la ca récupère tout ce qu'il y a dans le formulaire
$tv=$_REQUEST["tv"]/100;        // on divise par cent car ce sont des pourcentages et dans la base c'est pas en %
$ts=$_REQUEST["ts"]/100;        //
$td=$_REQUEST["td"]/100;        //
var_dump((float)str_replace('.' , ',' ,$pa));//
var_dump((float)str_replace('.' , ',' ,$pi)); //
var_dump((float)str_replace('.' , ',' ,$tv)); //la on change le point en virgule pour rentrer ça dans oracle
var_dump((float)str_replace('.' , ',' ,$ts)); //
var_dump((float)str_replace('.' , ',' ,$td)); //
 
/et la on fait les update dans la base
$pa et $pi sont des prix alors que les autre des taux

pour les prix ca marche que si on utilise les virgule alors que ca devrait aussi marcher avec les points.
rokhanjb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 13h54   #5
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
Tu fais les divisions sans caster en float, forcément, diviser une chaine de caractères par un entier ça peut rien produire de bon
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 13h56   #6
Invité de passage
 
Inscription : avril 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 7
Points : 0
Points : 0
ah wai spa con
rokhanjb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 14h01   #7
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
Tu peux également utiliser filter_var en passant FILTER_SANITIZE_NUMBER_FLOAT pour obtenir un float propre.

Exemple:
Code :
1
2
3
 
$f = "10,3";
var_dump(filter_var(str_replace(',', '.', $f), FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 15h43   #8
Invité de passage
 
Inscription : avril 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 7
Points : 0
Points : 0
merci pour tout
rokhanjb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h18.


 
 
 
 
Partenaires

Hébergement Web