[PHP/sql] SYStèeme de VOTE (pas de sondage...)

SYStèeme de VOTE (pas de sondage...) [PHP/sql] - PHP - Programmation

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  :jap:  
 
Rainckill  :hello:

Reply

Marsh Posté le 06-09-2002 à 21:42:11   

Reply

Marsh Posté le 06-09-2002 à 22:18:52    

up

Reply

Marsh Posté le 06-09-2002 à 22:46:01    

euh
la moyenne? somme des votes divisée par nombre de votes nan?
 :pt1cable:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 07-09-2002 à 09:00:21    

Code :
  1. $moyenne = ( $somme_des_points / $nombre_de_votes ) * 10;


 
avec eventuellement un round() pour ne pas affichier 10.000 chiffres derriere la virgule.
 

Code :
  1. $moyenne_arrondie = round(( $somme_des_points / $nombre_de_votes ) * 10, 2);


 
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


Message édité par Schtroumpheur le 07-09-2002 à 09:02:56
Reply

Marsh Posté le 07-09-2002 à 13:32:01    

Oui, mais comment obtenir la somme des vote ??  :heink:

Reply

Marsh Posté le 07-09-2002 à 13:33:07    


fonction avg() du langage sql ...


Message édité par HappyHarry le 08-09-2002 à 13:48:39
Reply

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 ?
 
 :hello:

Reply

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 ...

Reply

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

Reply

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 !


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 07-09-2002 à 13:52:28   

Reply

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

Reply

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 !  ;)


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

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 ...

Reply

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 ...  




 :jap:  
un nouvel exemple ici .....
 
http://forum.hardware.fr/forum2.php3?post=25631&cat=10
 
 :sweat:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 07-09-2002 à 17:04:08    

Harkonnen a écrit a écrit :

 
 :jap:  
un nouvel exemple ici .....
 
http://forum.hardware.fr/forum2.php3?post=25631&cat=10
 
 :sweat:  




 
pfff... j'sais pas ou on va ...
 
PS : pourrissage gentillet de topic
 
PPS :  [:sh%40rdar]


Message édité par HappyHarry le 07-09-2002 à 17:30:59
Reply

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()


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

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

Reply

Marsh Posté le 08-09-2002 à 13:20:51    

HappyHarry a écrit a écrit :

 
 
je repondais a la question initiale  



fallait pas quoter alors :D


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

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é ??

Reply

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

Reply

Marsh Posté le 08-09-2002 à 13:48:57    

joce a écrit a écrit :

fallait pas quoter alors :D




 
 :kaola:

Reply

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 :((
 

Reply

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 ?

Reply

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 ?

Reply

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 ?

Reply

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


Message édité par HappyHarry le 08-09-2002 à 18:57:27
Reply

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

Reply

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

Reply

Marsh Posté le 08-09-2002 à 19:04:43    

Code :
  1. UPDATE theTable SET moyenne = (nombreNotes * moyenne + $newMark) / (nombresNotes + 1), nombreNotes = nombreNotes + 1

Reply

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. ;)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed