Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1345 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°210177
rainckill
Posté le 06-09-2002 à 21:42:11  profilanswer
 

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:

mood
Publicité
Posté le 06-09-2002 à 21:42:11  profilanswer
 

n°210188
rainckill
Posté le 06-09-2002 à 22:18:52  profilanswer
 

up

n°210198
--greg--
Posté le 06-09-2002 à 22:46:01  profilanswer
 

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!
n°210264
Schtroumph​eur
bwwwwwaaaaarkkkkkkk!!!!!!
Posté le 07-09-2002 à 09:00:21  profilanswer
 

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
n°210314
rainckill
Posté le 07-09-2002 à 13:32:01  profilanswer
 

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

n°210315
HappyHarry
Posté le 07-09-2002 à 13:33:07  profilanswer
 


fonction avg() du langage sql ...


Message édité par HappyHarry le 08-09-2002 à 13:48:39
n°210318
rainckill
Posté le 07-09-2002 à 13:37:36  profilanswer
 

HappyHarry a écrit a écrit :

 
 
fonction avg() du langage sql ...




 
ah bon ? c cool :)
 
Mais comment l'emploie ton ?
 
 :hello:

n°210319
HappyHarry
Posté le 07-09-2002 à 13:38:53  profilanswer
 

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

n°210320
rainckill
Posté le 07-09-2002 à 13:44:36  profilanswer
 

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

n°210321
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-09-2002 à 13:52:28  profilanswer
 

...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)
mood
Publicité
Posté le 07-09-2002 à 13:52:28  profilanswer
 

n°210329
HappyHarry
Posté le 07-09-2002 à 14:18:00  profilanswer
 

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

n°210338
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-09-2002 à 14:41:36  profilanswer
 

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)
n°210372
HappyHarry
Posté le 07-09-2002 à 16:39:46  profilanswer
 

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

n°210379
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-09-2002 à 16:59:47  profilanswer
 

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)
n°210380
HappyHarry
Posté le 07-09-2002 à 17:04:08  profilanswer
 

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
n°210529
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 08-09-2002 à 02:11:26  profilanswer
 

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é
n°210586
HappyHarry
Posté le 08-09-2002 à 12:27:10  profilanswer
 

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

n°210600
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 08-09-2002 à 13:20:51  profilanswer
 

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é
n°210610
rainckill
Posté le 08-09-2002 à 13:40:14  profilanswer
 

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

n°210613
HappyHarry
Posté le 08-09-2002 à 13:42:34  profilanswer
 

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

n°210616
HappyHarry
Posté le 08-09-2002 à 13:48:57  profilanswer
 

joce a écrit a écrit :

fallait pas quoter alors :D




 
 :kaola:

n°210647
rainckill
Posté le 08-09-2002 à 14:55:47  profilanswer
 

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

n°210658
rainckill
Posté le 08-09-2002 à 16:13:00  profilanswer
 

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 ?

n°210665
HappyHarry
Posté le 08-09-2002 à 17:27:05  profilanswer
 

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 ?

n°210669
rainckill
Posté le 08-09-2002 à 17:32:46  profilanswer
 

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 ?

n°210689
HappyHarry
Posté le 08-09-2002 à 18:56:41  profilanswer
 

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
n°210690
HappyHarry
Posté le 08-09-2002 à 18:58:31  profilanswer
 

si tu fais autrement, tu seras dans tous les cas obligé de stocker qqpart le nombre de votes exprimés

n°210695
Dost67
Posté le 08-09-2002 à 19:01:42  profilanswer
 

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

n°210697
Dost67
Posté le 08-09-2002 à 19:04:43  profilanswer
 

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

n°210816
omega2
Posté le 09-09-2002 à 00:17:30  profilanswer
 

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

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

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

 

Sujets relatifs
[PHP] Faire apparaitre une image... pour un temps limité ![PHP] J'arrive pas à enlever les " \ " devant les caractères spéciaux
comment faire accéder pour accéder au command AT d'un modem en PHP[PHP] concaténer des variables ??
Upload sur Free (en PHP 3 ou 4)[PHP-MySQL] choisir la table par formulaire?
[PHP] ftp_connect , besoin d'aide![PHP-MySQL] Compter le nombre d'occurences d'une valeur.
[PHP] Probleme avec la fonction mail() -- Help me !!![PHP] Temps d'exection
Plus de sujets relatifs à : [PHP/sql] SYStèeme de VOTE (pas de sondage...)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR