[PHP] Système de vote!

  • Auteur de la discussion Auteur de la discussion pouet50
  • Date de début Date de début
WRInaute occasionnel
Salut all,

Je suis en train de créer un système pour que les visiteurs puissent noter les documents présents sur le site.

Pour l'instant, j'essaie juste d'afficher les résultats !

Code:
// Affichage des résultats

$result = mysql_query($sql);
$nb = mysql_num_rows($result);
   while( $row = mysql_fetch_array($result) )

   {
   $note = $row["note"];

	if ($nb > 1)
            { echo "Il y a $nb votes. $note"; }

        elseif ($nb == 1)
            { echo "Ce document a été noté $nb fois : $note"; }

        else 
            { echo "Il n'y a pas de vote pour ce document."; }
   }

Vous avez compris que je découvre un peu le php.
En fait j'ai créé une table "vote" avec les champs "id" et "note". Ainsi, a chaque fois qu'un visiteur note un document, il inscrit un enregistrement dans la table.

J'essaie ici d'imprimer les résultats en fonction du nombre de votes présents dans la table pour un ID donné que j'appelle un peu plus haut.

Et je trouve pas la fonction php, pour dans le cas où il y a plusieurs votes, les récupérer et effectuer des opérations ensuite dessus pour en faire une moyenne par exemple.


Si quelqu'un peut me filer un petit coup de pouce.

Merci d'avance.

Marc.
 
WRInaute impliqué
Hello,

Je veux bien t'aider ( si je peux ) mais je ne comprends pas trop ton explication :

ta requête $sql ( $result = mysql_query($sql); ) peux-tu me dire ce qu'elle contient ?

l'id c'est celle du vote ou de la page ?

Qu'est ce que tu appelles imprimer ? ( faire appel à la fonction print ? )

A+
 
WRInaute impliqué
pouet50 a dit:
Et je trouve pas la fonction php, pour dans le cas où il y a plusieurs votes, les récupérer et effectuer des opérations ensuite dessus pour en faire une moyenne par exemple.

euh je ne crois pas qu'il exsiste de fonction moyenne en php ... mais je suis loin de connaitre toutes les fonctions !

sinon un bête calcul ça peut aussi bien le faire ...
 
WRInaute discret
Tu peux faire une moyenne directement avec SQL exemple :
Code:
SELECT AVG(note_des_votes)
FROM TABLE_VOTE
WHERE numero_du_vote='$variable_php_numero_du_vote';
normalement ça dois marcher :)
 
WRInaute occasionnel
en fait j'ai trouvé la solution :


Code:
<?php

// Identifiants de connexion

include ("connec.php");

// Connexion Mysql

mysql_connect("$host","$user","$pass");
mysql_select_db("$table");

// On récupère le ID dans l'url

$id =  $_GET["id"];

// Requête SQL

$sql =  "select * from vote where id='$id'";

// Affichage des résultats

$result = mysql_query($sql);
$nb = mysql_num_rows($result);
$row = mysql_fetch_array($result);
$somme = array_sum($row);
$note = $row["note"];

	if ($nb > 1)
            {
            $arrond = $somme /= "$nb";
            $result = round($arrond, 1);
            echo "Ce document a été noté $nb fois<br>Note du document : $result";
            }

        elseif ($nb == 1)
            { echo "Ce document a été noté $nb fois : $note"; }

        else 
            { echo "Il n'y a pas de vote pour ce document."; }

?>

En fait, je fais la somme des résultats, puis un arrondi! Ca marche très bien ;)
 
Discussions similaires
Haut