Chiffre avec virgule dans Bdd + calculs [Résolu]

laubro 186 Messages postés jeudi 23 décembre 2004Date d'inscription 9 juillet 2013 Dernière intervention - 31 mai 2005 à 19:19 - Dernière réponse : laubro 186 Messages postés jeudi 23 décembre 2004Date d'inscription 9 juillet 2013 Dernière intervention
- 31 mai 2005 à 22:42
Bonjour,

Voilà j'ai des champs de ma base devant contenir des chiffres représentant des prix, donc il y a besoin de pouvoir mettre des chiffre avec virgule, hors dans mysql j'y arrive, avec decimal, je comprend pas comme paremetre le champs pour y mettre des chiffres à virgule, est ce bien ce format ?

si je le mettait dans un champs text ou blob, ça irrait pour afficher les prix, sauf que j'ai besoin ensuite d'utiliser ces chiffres pour des calculs........

ensuite, y t'il une astuce pour additionner des chiffres situé dans des champs suite à une requette type :

$select = "SELECT * FROM calendrier where date>='$d' AND date2<'$d2' AND dispo1>'0'";


$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );


$total = mysql_num_rows($result);




echo "Nombre de dispo : $total
"
jusque l'a tout va bien, sauf que dans ma requette imaginons qu'il y ai 5 réponses, chaque réponse à 1 champs "prix", comment faire additionner les champs prix (c'est pour de la vente de nuitée d'hotel, donc la réponse est $total pour la qtte, mais le prix peut varier si c'est des jours de semaine ou week end, donc un simple $prix*$total n'est pas suffisant) il faudrait que je puisse fait
champs prix 1 + champs prix 2 +......selon la réponse de la requette

j'espere être claire ! ! !

Laubro
Afficher la suite 

12 réponses

Répondre au sujet
laubro 186 Messages postés jeudi 23 décembre 2004Date d'inscription 9 juillet 2013 Dernière intervention - 31 mai 2005 à 22:42
+3
Utile
ok trouvé :
echo round($resultat, 2); pour limite à 2 chiffres
Laubro
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de laubro
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 31 mai 2005 à 19:27
0
Utile
Salut,



pour le champ DECIMAL convient, VARCHAR ou blob ça ne convient pas.



Pour la somme utilise SUM() si c'est pour un champ, pour plusieurs champs teste



"SELECT champ1+champ2" je pense que ça fonctionnera



plus de détails ici :



Commenter la réponse de cs_Anthomicro
laubro 186 Messages postés jeudi 23 décembre 2004Date d'inscription 9 juillet 2013 Dernière intervention - 31 mai 2005 à 20:55
0
Utile
Merci,

j'ai essayé ça :

<?php
include("conf.php");
$link = mysql_connect ($serveur,$user,$passord) or die ('Erreur : '.mysql_error() );
mysql_select_db($base) or die ('Erreur :'.mysql_error());


$moyenne = mysql_query("SELECT SUM prix1 FROM calendrier WHERE date>='2005-06-01' AND date2<='2005-06-02'");


echo "$moyenne
";


?>
car c'est la somme des chiffre du champ qu'il me faut
mais j'ai rien qui s'affiche

Et pour DECIMAL, il met met d'office en parametre mon chiffre nb valeur +,0
ex : 10,0
mais quand je rentre un chiffre avec virgule, il ne prends pas, il ne retien que le chiffre avant la virgule ?
Laubro
Commenter la réponse de laubro
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 31 mai 2005 à 21:00
0
Utile
non c'est SELECT SUM(prix1)



ensuite pour le DECIMAL tu inserts comment tes valeurs à virgule ?



le séparateur est une virgule ou un point ? (que tu utilises pour insérer dans la base)






<li>
Commenter la réponse de cs_Anthomicro
laubro 186 Messages postés jeudi 23 décembre 2004Date d'inscription 9 juillet 2013 Dernière intervention - 31 mai 2005 à 21:11
0
Utile
une virgule
Laubro
Commenter la réponse de laubro
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 31 mai 2005 à 21:12
0
Utile
Essaie avec un point






<li>
Commenter la réponse de cs_Anthomicro
laubro 186 Messages postés jeudi 23 décembre 2004Date d'inscription 9 juillet 2013 Dernière intervention - 31 mai 2005 à 21:13
0
Utile
ça m'affiche ça Resource id #2 avec
$moyenne = mysql_query("SELECT SUM(prix1) FROM calendrier WHERE date>='2005-06-01' AND date2<='2005-06-02'");
Laubro
Commenter la réponse de laubro
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 31 mai 2005 à 21:19
0
Utile
Faut pas faire de echo ensuite... Faut passer par fetch_row...



Consulte les sites tel que phpdebutant pour voir comment récupérer des données issues d'une requête select






<li>
Commenter la réponse de cs_Anthomicro
laubro 186 Messages postés jeudi 23 décembre 2004Date d'inscription 9 juillet 2013 Dernière intervention - 31 mai 2005 à 21:33
0
Utile
Ok pour le SUM, j'avais un peu oublié, effectivement c'est mieux avec fetch_row...
par contre mes decimals, ni point ni virgule, ni avec 1 ou 2 chiffres apres la virgule/point
Laubro
Commenter la réponse de laubro
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 31 mai 2005 à 21:54
0
Utile
regarde si ton champ décimal dans MySQL est de taille > 1






<li>
Commenter la réponse de cs_Anthomicro
laubro 186 Messages postés jeudi 23 décembre 2004Date d'inscription 9 juillet 2013 Dernière intervention - 31 mai 2005 à 21:59
0
Utile
prix1 decimal(5,0) NOT NULL default '0',

Laubro
Commenter la réponse de laubro
laubro 186 Messages postés jeudi 23 décembre 2004Date d'inscription 9 juillet 2013 Dernière intervention - 31 mai 2005 à 22:27
0
Utile
ok, compris, il faut 5,2 pour 5 chiffres avant et 2 chiffres apres la virgule ! ! !
merci

mais encore une question
quand on fait un calcul, une division entre autre, comment peut on limité le resultat à 2 chiffres après la virgule ?
Laubro
Commenter la réponse de laubro

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.