MySQL - DECIMAL

Répondre
Keika
le 14/09/2006 à 03:18
Keika
salut

voila j'ai une table stock avec un tuple prix qui a le type DECIMAL. cependant quand je rentre des valeurs avec virgules dans le champ du formulaire, celui-ci convertit le nombre à l'entier le plus proche...

voici mes codes d'insertion:

<?php
/*PARTIE DE GESTION DU FORMULAIRE D'AJOUT DE PRODUIT*/

//Si le formulaire envoit des infos par la variable $_POST
if(isset($_POST['go'])&& ($_POST['go'] == 'Enregistrer le produit')){

//On lance la requette SQL
$sql = 'INSERT INTO stock VALUES("", "'.addslashes($_POST['produit']).'", "'.addslashes($_POST['quantite']).'", "'.addslashes($_POST['prix']).'")' ;

//On lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());

//Ensuite on ferme la connexion à la base de données
mysql_close();
header('Location: ../index.php?pages=stock') ;
//Et on quitte
exit();


} ?>



Quant au formulaire c'est un formulaire de base avec rien de PHP.

Merci d'avance.

K.

PS: j'ai essayé la décimale avec un point ou virgule et ca donne toujours la meme erreur
Le PHP --> C'est dur !
LA GLOBULE
le 14/09/2006 à 08:24
LA GLOBULE
En règle générale, en informatique, les décimaux se forment avec des points, que ce soit en PHP ou dans MySQL.

Verifie aussi la taille / valeur de ton champs MySQL dans la structure de ta table.
Par défaut, ca met "10,0".
Or si tu laisses 0, ca indique 0 chiffre après la virgule, modifie le comme tu le souhaites.
Bzh
le 14/09/2006 à 18:56
Bzh
Et bin !!! C'est quand même impressionnant tes progrès Keika !

Il est vraiment propre ton code !!!!
Bzh
le 14/09/2006 à 19:00
Bzh
Heu ! Désolé pour le double post (comme on peut pas modifier) !!!

if(isset($_POST['go'])&& ($_POST['go'] == 'Enregistrer le produit')){

Ch'ui pas pour du tout ! Ce n'est pas très très logique ! Tu vérifies que la variable existe tout en testant son contenu !

Je trouve vraiment préférable de tester d'ABORD si elle existe PUIS de tester sa valeur ! Et non en même temps...

C'est profiter du laxisme que permet php ! Ne pas tomber dans ce piège là !!! Même s'il permet beaucoup de chose, il faut rester logique !!!
mojorisin
le 14/09/2006 à 20:12
mojorisin
Non c'est tres bien comme ça
Les données d'une instruction sont évaluées dans l'ordre de la gauche vers la droite donc ça suffit.
premiere evaluation fausse, ça quitte, sinon ça teste la suivante.
echo ’16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq’|dc
LupusMic
le 14/09/2006 à 20:22
LupusMic
(Bzh) Comme le dit mojorisim, c'est une méthode classique. PHP se comporte en fonction de la Lazy Evaluation.

D'ailleurs, tu utilises toi-même cette fonctionnalité sans le savoir : mysql_connect(...) or die(...). La fonction die n'est évalué que si mysql_connect renvoie false.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Bzh
le 14/09/2006 à 20:33
Bzh
Je trouve seulement, et c'est ce que j'ai dis, que php permet trop de truc ! Je trouve que c'est du laxisme !

Je ne trouve pas cela très sérieu... M'enfin, chacun ses habitudes...
Keika
le 15/09/2006 à 13:54
Keika
ok ok de toute facon j'ai réfléchi à quelque chose.

comme j'ai un code pour ajouter et modifier un produit, je pense que ceci fonctionne aussi:

<?php

if(isset($_POST['go']{

if($_POST['go'] == 'Enregistrer le produit'){

//on enregistre le produit...
}

if($_POST['go'] == 'Modifier le produit'){

//On modifie le produit
}
}
?>


je pense que c'est ca que tu voulais me faire faire Bzh, non ? et comme ca moi ca m'évite d'avoir à retaper if(isset($_POST['go']) puisque tout est déja compris dans ce if...

LA_GLOBULE: j'avais mis 4 en valeur pour le DECIMAL... je vais essayer avec 10 et avec les points je double posts pour les résultats mais pas avant lundi.

Merci à tous

K.
Le PHP --> C'est dur !
LupusMic
le 15/09/2006 à 16:42
LupusMic
(Bzh) Cette méthode est utilisée en C...
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Bzh
le 16/09/2006 à 19:58
Bzh
Oui ! Je sais... Le C est pour moi le meilleur langage qui n'ai jamais existé...

Il faut être sérieu... Ce n'est pas logique. Php est trop permissif et je trouve qu'il ne faut pas en abuser...

Voila...
Répondre
LoadingChargement en cours