Chiffre avec virgule dans Bdd + calculs

Résolu
Signaler
Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
-
Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
-
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

12 réponses

Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013

ok trouvé :
echo round($resultat, 2); pour limite à 2 chiffres
Laubro
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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 :



Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013

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
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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>
Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013

une virgule
Laubro
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Essaie avec un point






<li>
Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013

ç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
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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>
Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013

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
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
regarde si ton champ décimal dans MySQL est de taille > 1






<li>
Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013

prix1 decimal(5,0) NOT NULL default '0',

Laubro
Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013

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