8797 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Je souhaite afficher en temps réel une note pour chacune des entrées à afficher, j'ai trouvé le code [order by (total / nombre de votes], mais ça affiche 13 décimales Smiley eek et je souhaite limiter le résultat à 2.

J'ai fait quelques recherches mais je ne trouve pas mon bonheur.. Quelqu'un a-t-il une idée? Smiley biggrin

Merci par avance à vous.
Modifié par zamoy (10 Dec 2007 - 17:35)
Bonjour,

pas très bien compris le contexte, mais pour afficher 2 décimales, si l'on admet que tu as la valeur dans $nombre il suffit de faire:
printf('note: %0.2f', $nombre);
Salut zamoy,

regardes du côté de round Smiley cligne .

Par exemple :
<?php
$nombre = 1321.656546546;
echo round($nombre, 2);
?>

A+
Merci à vous deux.

> Necromantik : je n'ai pas du trouver la syntaxe adaptée à mon contexte donc ça me fait une erreur... (pardon si je n'ai pas été claire, tu dois savoir ce que c'est : quand tu es à fond dans ton truc, c'est pas toujours évident d'expliquer...) Mais merci quand même, j'approfondierai quand j'aurai un peu de temps !

> Heyoan : c'est pile ce dont j'avais besoin, ça ne m'affiche plus que 2 décimales, c'est parfait ! Smiley biggrin Merci 1000 fois!
Cool !

Sinon, après réflexion ce serait peut-être mieux de le faire directement dans la requête. Quelque chose comme :
SELECT ROUND(SUM(vote) / COUNT(*) , 2) FROM table
vote est le champ qui contient la note, SUM(vote) retourne le total cumulé des notes et COUNT(*) retourne le nombre total de votes.

A+
Modifié par Heyoan (10 Dec 2007 - 13:33)
zamoy a écrit :
Smiley eek

Hum hum... Smiley confus
C'est marrant, je sens comme un léger flottement par rapport à ma suggestion Smiley biggol !

Quelque chose n'est pas clair Smiley lol ?
Pour essayer d'être plus clair Smiley langue :

si j'ai bien compris tes visiteurs effectuent des votes en donnant une note (de 0 à 10 par exemple) et ces notes sont enregistrées dans une table votes qui ressemble à ça :
- id_vote
- note

pour récupérer la moyenne des votes il suffit de faire :
$sql = 'SELECT ROUND(SUM(note) / COUNT(*) , 2) FROM votes';
$result = mysql_query($sql) or die(mysql_error()); 
$row = mysql_fetch_row($result);
echo $row[0];

A+ Smiley smile
Je ne crois pas que ça puisse fonctionner dans mon cas... Smiley ohwell

C'est en tout cas bien plus simple pour moi d'utiliser "round" au moment où j'affiche la note dans la page, en fonction des deux tables concernées par la requête...

Pourquoi faire compliqué quand on peut faire simple! Smiley cligne

En tout cas, merci beaucoup.
Modifié par zamoy (10 Dec 2007 - 15:57)
sinon pour le formatage de nombre il y a la fonction : number_format Smiley cligne

on y pense pas tout le temps mais elle est rudement pratique notemment pour les separateurs de milliers Smiley cligne