Question

Je suis un novice en matière de SQL et de PHP. J'essaie d'arrondir un résultat de prix moyen et de supprimer les zéros supplémentaires qui apparaissent actuellement.

Actuellement, mon résultat est le suivant: 3,005000 $

Mon code se lit actuellement comme suit:

$result = mysql_query("SELECT AVG(price) FROM milk WHERE price > 0 ");
$row = mysql_fetch_row ($result);

J'ai trouvé plusieurs exemples d'arrondi et de troncation SQL mais, malheureusement, les tutoriels que j'ai visionnés ne me fournissent aucune information utile sur l'endroit où ou comment je suis censé implémenter ces modifications.

Cela me laisse deviner où faire des changements - aucun d'entre eux n'a encore fonctionné (évidemment).

Si quelqu'un pouvait me donner un exemple de la manière d'arrondir et de tronquer mes résultats, indiquant notamment l'endroit où je dois effectuer ces modifications dans ma configuration actuelle, ce serait très utile et j'en serais très reconnaissant! Je suis vraiment désolée si ma n00bishness complique l’explication de la solution.

Merci!

Était-ce utile?

La solution

MySQL a une ROUND () fonction.

Donc, arrondissez votre moyenne dans votre requête SQL:

$result = mysql_query("SELECT ROUND(AVG(price),2) FROM milk WHERE price > 0 ");

Si vous rencontrez des problèmes de formatage, vous pouvez utiliser la fonction number_format () de PHP pendant la sortie.

Autres conseils

Le formatage des données doit être effectué dans le script de création de la requête, pas dans la requête elle-même. Par exemple, en PHP, vous pouvez écrire ce qui suit avec sprintf :

$formatted_price = sprintf("%01.2f", $unformatted_price);

(Exemple de complément du du manuel PHP ).

De manière générale, les valeurs de prix sont stockées sous forme de types décimal ou d'entiers mis à l'échelle, et non de types à virgule flottante, car les valeurs à virgule flottante ne sont pas exactes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top