SYStèeme de VOTE (pas de sondage...) [PHP/sql] - PHP - Programmation
Marsh Posté le 06-09-2002 à 22:46:01
euh
la moyenne? somme des votes divisée par nombre de votes nan?
Marsh Posté le 07-09-2002 à 09:00:21
Code :
|
avec eventuellement un round() pour ne pas affichier 10.000 chiffres derriere la virgule.
Code :
|
2 signifie 2 chiffres apres la virgule.
a+
PS: la moyenne s'affichera sur 10
si tu veux afficher en pourcentage tu fais *100 au lieu de *10
Marsh Posté le 07-09-2002 à 13:33:07
fonction avg() du langage sql ...
Marsh Posté le 07-09-2002 à 13:37:36
HappyHarry a écrit a écrit : fonction avg() du langage sql ... |
ah bon ? c cool
Mais comment l'emploie ton ?
Marsh Posté le 07-09-2002 à 13:38:53
comme une fonction d'aggregation classique ...
select avg(tacolonne) from tatable <eventuellement une condition>
inutile de préciser qu'il vaut mieux que ta colonne soit de type numérique
lis la doc SQL avant de poser des questions ...
Marsh Posté le 07-09-2002 à 13:44:36
Oki merci happyharry
Par contre, le système que je veux faire, c'est donc un système de vote pour chak éléments (prenons un expl : fichier dans rubrik download)... Doonc quel est le meilleur moyen de faire un système ce système de vote ?
Merci
Marsh Posté le 07-09-2002 à 13:52:28
...et comme à chaque fois qu'on utilise une fonction d'agrégation, ne pas oublier le GROUP BY à la fin !
Marsh Posté le 07-09-2002 à 14:18:00
Harkonnen a écrit a écrit : ...et comme à chaque fois qu'on utilise une fonction d'agrégation, ne pas oublier le GROUP BY à la fin ! |
seulement si tu as plusieurs champs dans ta clause select
Marsh Posté le 07-09-2002 à 14:41:36
HappyHarry a écrit a écrit : seulement si tu as plusieurs champs dans ta clause select |
Il fallait que ce soit dit !
Marsh Posté le 07-09-2002 à 16:39:46
Harkonnen a écrit a écrit : Il fallait que ce soit dit ! |
entierement d'accord avec toi
mais le message d'erreur est generalement suffisamment explicite si on ne la specifie pas
et c'est dans la doc aussi, malheureusement j'ai l'impression que de moins en moins de gens la lisent ...
Marsh Posté le 07-09-2002 à 16:59:47
HappyHarry a écrit a écrit : malheureusement j'ai l'impression que de moins en moins de gens la lisent ... |
un nouvel exemple ici .....
http://forum.hardware.fr/forum2.php3?post=25631&cat=10
Marsh Posté le 07-09-2002 à 17:04:08
Harkonnen a écrit a écrit : un nouvel exemple ici ..... http://forum.hardware.fr/forum2.php3?post=25631&cat=10 |
pfff... j'sais pas ou on va ...
PS : pourrissage gentillet de topic
PPS :
Marsh Posté le 08-09-2002 à 02:11:26
HappyHarry a écrit a écrit : fonction avg() du langage sql ... |
je précise quand même que avg() ne donne pas la somme des votes mes directement la moyenne des votes
Pour la somme c'est SUM()
Marsh Posté le 08-09-2002 à 12:27:10
joce a écrit a écrit : je précise quand même que avg() ne donne pas la somme des votes mes directement la moyenne des votes Pour la somme c'est SUM() |
je repondais a la question initiale
Marsh Posté le 08-09-2002 à 13:20:51
HappyHarry a écrit a écrit : je repondais a la question initiale |
fallait pas quoter alors
Marsh Posté le 08-09-2002 à 13:40:14
Ah AVG done direct la moyenne ? c'est ce que je pensé en pensant a average, mais bon vu ke javé demandé la fonction somme, et kon ma donné ca...
Donc aps besoin de faire
$moyenne = ( $somme_des_points / $nombre_de_votes ) * 10
c cool
Par contre kestion tt cone... Je sais, pas trop coment mis prendre car enfait, j'aurai une vingteaine de truc ou les visiteur pourront voté... Mais dois je faire une table par truc a commenté ??
Marsh Posté le 08-09-2002 à 13:42:34
rainckill a écrit a écrit : Ah AVG done direct la moyenne ? c'est ce que je pensé en pensant a average, mais bon vu ke javé demandé la fonction somme, et kon ma donné ca... Donc aps besoin de faire $moyenne = ( $somme_des_points / $nombre_de_votes ) * 10 c cool Par contre kestion tt cone... Je sais, pas trop coment mis prendre car enfait, j'aurai une vingteaine de truc ou les visiteur pourront voté... Mais dois je faire une table par truc a commenté ?? |
nan t'as l'instruction group by qui te permettra de faires des moyennes par 'truc' comme tu dis
genre pour avoir la moyenne de toutes les notes d'eleves tu pourras faire :
select eleve,avg(note) from notes group by eleve
Marsh Posté le 08-09-2002 à 14:55:47
HappyHarry a écrit a écrit : nan t'as l'instruction group by qui te permettra de faires des moyennes par 'truc' comme tu dis genre pour avoir la moyenne de toutes les notes d'eleves tu pourras faire : select eleve,avg(note) from notes group by eleve |
Bon, alors j'explique ce que je veux faire, car je crois que tu n'as pas bien compris (ou c'est moi)
Je compte faire une partie "module" sur mon site... Chak module sera ajouté dans une table "sys_module" avec toutes els infos (titre, description, etc...). Mais j'aimerai ajouter à cela un système de vote... Que les visiteurs puissent donner une bonne ou mauvaise note a ce module... et c'est la ou je coince...
Ja voit aps coment mis prendre la, plizzzz help (
Marsh Posté le 08-09-2002 à 16:13:00
enfait g réfléchis un ptit peu, et je pensé a ce systeme :
Sur la table qui stoke ttes les informations a propos du module concerné (titre, description, etc...) kon ajoute un champs note, et c'est a cet endroit ke la note sera donc mémorisé....
Mais il faudré donc dire ajoute X (X étant la note sur 10 noté apr le visiteurs) au nombre déjà présent dans le champs "note" soit Y...
C'est possible de faire cela ?
Et pour la moyenne, il arrivera a me faire une moyenne si il na que par exemple dans le champs "note" 254 ?
Marsh Posté le 08-09-2002 à 17:27:05
nan, et puis c un peu con ton systeme, ca t'obligera a stocker aussi le nombre de votes qui ont ete faits
pourquoi ne pas dedier une table a ca ?
Marsh Posté le 08-09-2002 à 17:32:46
HappyHarry a écrit a écrit : nan, et puis c un peu con ton systeme, ca t'obligera a stocker aussi le nombre de votes qui ont ete faits pourquoi ne pas dedier une table a ca ? |
oui, mais dédié une table a ca, ca va etre plus galere apres, pour dire t"toi tu correspond a ce module, toi a lui, etc...)
Non ?
Marsh Posté le 08-09-2002 à 18:56:41
rainckill a écrit a écrit : oui, mais dédié une table a ca, ca va etre plus galere apres, pour dire t"toi tu correspond a ce module, toi a lui, etc...) Non ? |
ben nan, une table avec 2 pov' champs, module et note, et autant d'enregistrements que de votes
Marsh Posté le 08-09-2002 à 18:58:31
si tu fais autrement, tu seras dans tous les cas obligé de stocker qqpart le nombre de votes exprimés
Marsh Posté le 08-09-2002 à 19:01:42
rainckill a écrit a écrit : oui, mais dédié une table a ca, ca va etre plus galere apres, pour dire t"toi tu correspond a ce module, toi a lui, etc...) Non ? |
Si même que ça fait des index supplémentaires pour pas grand chose.
En quoi est-ce embettant de rajouter 2 champs à une table, surtout si ceux-ci sont de types numériques :
- moyenne TINYINT(2) UNSIGNED
- nombreNotes SMALLINT(5) UNSIGNED
Marsh Posté le 08-09-2002 à 19:04:43
Code :
|
Marsh Posté le 09-09-2002 à 00:17:30
L'avantage de faire avec deux tables, c'est que tu pouras très facilement faire un système de votes pour autre chôse que tes modules (t'auras déjà pàlus de 95% du code de fait).
En mettant les infos dans la table des modules, si après tu veux faire un vote diférent poiur x raison, tu devras réécrire un nouveau système de vote.
Pour tarequête, elle me semble bonne.
Marsh Posté le 06-09-2002 à 21:42:11
Voila, j'aimerai faire un système de vote (ou trouver un systeme e vote sur le net) qui propose d'attribué une noteà kelke chose : entre 1 et 10 par expl (pur expl) et apres, suivant le nombre de réponse, d'en faire la moyenne....
Ce que je n'arriv eaps à faire, c'est justement cette moyenne... Merci de votre aide
P.S : si vous connaissez un système de vote comme celui décrit ici, merci de m'indiquer ou le trouver
Rainckill