Problème de type de données SQL

Eléphant du PHP | 115 Messages

28 févr. 2007, 11:18

Bonjour,

J'ai 2 champs dans une table de type DECIMAL (5,2).
Champs1=-12.00
Champs2=3.00

Si je compare en php ces 2 champs :

if($champs2>=$champs1){ ... }

rien ne se passe, la valeur 3 n'est pas reconnue comme supérieur à -12.

Est-ce que c'est dû à un mauvais type SQL :?:

(au max, les valeurs doivent aller de -100.00 à 100.00)
Quelques réalisations www.cdi-interactiv.com

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

28 févr. 2007, 11:22

A vérifier, mais je pense que php va interpréter tes nombres comme des chaines... Essaye éventuellement avec la fonction floatval() pour voir si le problème ne vient pas de là :
if(floatval($champs2) >= floatval($champs1)){ ... }
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 115 Messages

28 févr. 2007, 12:00

J'ai essayé mais ça ne marche pas mieux...

Le problème ne viendrait-il pas du type des données SQL ?
Qu'y a-t-il de mieux que DECIMAL ?
Quelques réalisations www.cdi-interactiv.com

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 févr. 2007, 12:11

Avant de redéfinir les types de tes champs, je te conseillerais de regarder précisément ce que PHP récupère de ta base.

Je suis d'avis que c'est à ce moment là que tout se joue ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 115 Messages

28 févr. 2007, 15:15

J'ai mis en FLOAT et ça marche... :D
Quelques réalisations www.cdi-interactiv.com

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 févr. 2007, 16:17

C'est l'histoire du mec qui à un tournevis et un clou et qui cherche obstinément à enfoncer son clou avec le tournevis alors que tout le monde lui conseille de prendre un marteau :roll:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer