Noter un site sur 10 avec un script....

Noter un site sur 10 avec un script.... - PHP - Programmation

Marsh Posté le 28-01-2003 à 23:32:59    

Ben vous avez surement vue sa,c un pti truc pour noter un lien ou un fichier sur 10....
Je gallère pour insérer des truc dedans... voici la structure de ma table :
 

Citation :

Citation :

CREATE TABLE hayoo_vote (
  id int(11) NOT NULL auto_increment,
  vote1 int(5) NOT NULL default '0',
  vote2 int(5) NOT NULL default '0',
  vote3 int(5) NOT NULL default '0',
  vote4 int(5) NOT NULL default '0',
  vote5 int(5) NOT NULL default '0',
  vote6 int(5) NOT NULL default '0',
  vote7 int(5) NOT NULL default '0',
  vote8 int(5) NOT NULL default '0',
  vote9 int(5) NOT NULL default '0',
  vote10 int(5) NOT NULL default '0',
  nbrevote int(5) NOT NULL default '0',
  PRIMARY KEY  (id)
) TYPE=MyISAM;


 
 
Voilà...
aprés j'affiche un un menu déroulant pour voter, avec la redirection et là...
 

Citation :

   $sql = "UPDATE hayoo_annu SET vote$n = vote$n +1 where id=$id ";


Sachant que chaque note vaut vote1, vote2,vote3, etc....
POuvez m'aider à mettre mon truc sur pied, sa me dit quetout est enregistrez, merci pour votre vote.... mais en fait sa fait rien de plus..


---------------
La solution à ton problème ?.... Mon portail PHP tribisur ;)
Reply

Marsh Posté le 28-01-2003 à 23:32:59   

Reply

Marsh Posté le 29-01-2003 à 00:02:09    

hayoo_vote  
hayoo_annu  
 
:whistle:

Reply

Marsh Posté le 29-01-2003 à 00:30:20    

c'est pas bien compliqué... fait en 10min
les votes sont additionnnés dans le champ note, le nombre de vote est stocké pour faire la moyenne.
 
CREATE TABLE hayoo_vote (  
 id int(11) NOT NULL auto_increment,  
 note int(5) NOT NULL default '0',  
 nbrevote int(5) NOT NULL default '0',  
 PRIMARY KEY  (id)  
) TYPE=MyISAM;
 

Code :
  1. //ajouter un vote
  2. function vote($id, $note){
  3.   global $connexion;
  4. // !! check de l'id et de la note à faire !!
  5. // !! 0 < $note < 10 !!
  6.   $sql = "UPDATE hayoo_annu SET note=note+$note, nbrevote=nbrvote+1 WHERE id='$id'";
  7.   $res= mysql_query($sql);
  8. //cookie pour empêcher le multi-vote
  9. }
  10. //calculer la moyenne
  11. function moyenne($id){
  12.   global $connexion;
  13.   $sql= "select note, nbrevote from hayoo_annu where id='$id'";
  14.   $res= mysql_query($sql);
  15.   $row= mysql_fetch_array($res);
  16.   $moyenne= floor($row['note']/$row['nbrevote']); //floor=arrondi inférieur
  17.   return array($moyenne, $row['nbrevote']);
  18. }
  19. //afficher le formulaire de vote
  20. function formulaire_vote($id){
  21.   $max=10;
  22.   echo '<form action="vote.php" method="post">';
  23.   echo '<input type="hidden" name="id" value="'.$id.'">';
  24.   echo '<select name="note">';
  25.   for($i=0; $i<=$max; $i++){
  26.     echo '<option value="'.$i.'">'.$i.'</option>';
  27.   }
  28.   echo '</select>';
  29.   echo '</form>';
  30. }


 
 

Code :
  1. //affichage du formulaire de vote
  2. echo 'Programme 1 votez : '. formulaire_vote(1) . '<br>';


 

Code :
  1. //list_pgm.php
  2. //affichage d'une moyenne :
  3. $pgm= moyenne(1);
  4. echo 'Le programme a obtenu '. $pgm[0] .' de moyenne ('.$pgm[1] .' votes)';


 

Code :
  1. //vote.php
  2. //ajout d'un vote :
  3. vote($HTTP_POST_VARS['id'], $HTTP_POST_VARS['note']);
  4. //+redirection  
  5. header('location: /thx_for_vote.html');


 
 
 
 
 


Message édité par ethernal le 29-01-2003 à 00:37:07
Reply

Marsh Posté le 29-01-2003 à 00:47:05    

bo je vé revoir mon script si sa ne vient pas d'une simple faute de base (x2 lol)
Et analyserton topic merci bocoups !
Sinon pourquoi il n'yaps de sript de ce genre sur des truc comme phpscripts-fr et les autres ?


---------------
La solution à ton problème ?.... Mon portail PHP tribisur ;)
Reply

Marsh Posté le 29-01-2003 à 01:08:43    

checker-67 a écrit :

bo je vé revoir mon script si sa ne vient pas d'une simple faute de base (x2 lol)
Et analyserton topic merci bocoups !
Sinon pourquoi il n'yaps de sript de ce genre sur des truc comme phpscripts-fr et les autres ?


:lol:
pcq ça dépend de ce que tu veux faire je suppose...
le format de ta table (de base) est bien si tu veux faire des graphiques en batonnets  
1/10 xx
2/10 x
3/10 xxxxxxxx
4/10 xxxx
5/10
...
10/10 xxxxxxxxxxx
moyenne : 5.5 (150 votes)
mais je ne pense pas que ça soit intéressant pour une note
 
 
sinon, tu pourrais envisager d'avoir une bd du style
CREATE TABLE hayoo_vote (  
 id int(11) NOT NULL auto_increment,  
 noteint(5) NOT NULL default '0',  
 PRIMARY KEY  (id)  
) TYPE=MyISAM;
 
et avoir une query pour la moyenne
select AVG(note) as moyenne from hayoo_annu where id='$id';
 
dans ce cas tu stokes chaque note avec
insert into hayo_annu (note) values('$note';)
et tu pourrais stocker l'heure, l'ip, etc, ... mais je pense pas que ça soit intéressant dans ce cas et tu pourrais vite avoir une grosse table bien remplie dont l'interrogation ralentirait le script.
 


Message édité par ethernal le 29-01-2003 à 01:11:40
Reply

Marsh Posté le 29-01-2003 à 17:55:32    

Ouai mon truc sa serait de faire un script qui affiche à la fois les résultats sous forme de batonet, mais avoir une moyenne des votes peu aussi étre cool.
Je vais me remettre desus ce soir et j'espère pouvoir faire quelques chose de sympa.
Je vé aussi examiner les scripts de phpmyannu pour voir un peu la structure de sa table et voir les bon élément à garder et quoi améliorer.
Merci  :bounce:  :D


---------------
La solution à ton problème ?.... Mon portail PHP tribisur ;)
Reply

Sujets relatifs:

Leave a Replay

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