J'essaye de faire une moyenne des note données à un jeu.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : J'essaye de faire une moyenne des note données à un jeu.

par yaug » 12 nov. 2008, 19:23

Tu peux récupérer ta note via la requete sql qui te permet de récupérer les informations d'un jeu donné.

Si tu as une table Jeux et une table Notation (liées toutes les 2 par l'id du jeu) tu peux faire par exemple

SELECT j.*, AVG(n.note)
FROM jeu j LEFT JOIN notation n ON (j.jeu_id = n.jeu_id)
WHERE j = 'id_de_ton_jeu'
GROUP BY j.jeu_id


Ceci est un exemple à la con, non testé, mais qui sert à te montrer comment faire.
En gros récupère la note moyenne depuis ta requête.

J'essaye de faire une moyenne des note données à un jeu.

par Mathieu94 » 12 nov. 2008, 19:05

Bonsoir ! :D

Voila j'essaye de faire une moyenne des notes données à des jeux (test fait par des gens) mais étant un débutant, je ne vois pas du tout comment le faire. :s

Pouvez vous m'aider ?

Voici mon code :
<form action="farcry2.php" method="post">
        <p>
                Pseudo :<br /> <input type="text" name="pseudo" /><br />
                Message :<br /> <textarea name="message" rows="10" cols="82">Votre test ici.
				<?php
$texte = stripslashes($message);
?>
</textarea><br />
				Quelle note donneriez vous à ce jeu ? <select name="note"><option name="note1">1</option>
																<option name="note2">2</option>
																<option name="note3">3</option>
																<option name="note4">4</option>
																<option name="note5">5</option>
																<option name="note6">6</option>
																<option name="note7">7</option>
																<option name="note8">8</option>
																<option name="note9">9</option>
																<option name="note10" selected="selected">10</option>
																<option name="note11">11</option>
																<option name="note12">12</option>
																<option name="note13">13</option>
																<option name="note14">14</option>
																<option name="note15">15</option>
																<option name="note16">16</option>
																<option name="note17">17</option>
																<option name="note18">18</option>
																<option name="note19">19</option>
																<option name="note20">20</option>
														</select><br />
														
				<input type="submit" value="Envoyer le message" />
        </p>
		</form>
		
		<p class="page">
		<?php
		
		mysql_connect("*********", "**************", "*******");
		mysql_select_db("**********");

		
		// --------------- Etape 1 -----------------
		// Si un message est envoyé, on l'enregistre
		// -----------------------------------------
			if (isset($_POST['pseudo']) AND isset($_POST['message']) AND isset($_POST['note']))
				{
					$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
					$message = mysql_real_escape_string(nl2br(htmlspecialchars($_POST['message']))); //idem pour la var message

					$note = htmlspecialchars($_POST['note']);
					
					$date = date("d-m-Y");  //on formalise la date
					$heure = date("H:i"); // on formalise l'heure
					$date_complete = 'Le ' . $date . ' à ' . $heure ;  //on donne à la date complete une forme combinée des deux variables précédentes en ajoutant du texte
					$avant = array("\\","/","#","*","é","?","<",">","+",")","à","|","(");
	$apres = array("//","//","//","//","e","//","//","//","//","//","a","//","//");
	$mots=str_replace($avant,$apres,$mots);
									
						$erreur="";
						if ($pseudo=="") 
							{
							$erreur=$erreur."Votre message ne contient pas de pseudo...";//Premierement, verif du pseudo
							}
						if ($message=="") 
							{
							$erreur=$erreur."Un test sans test... ;-)"; //Deuxiemement, verif du message
							}

						if ($erreur=="") 
							{
							//Donc si il n'y a pas d'erreur (erreur = rien)
							echo "<font style=\"color:green;\">Votre message à bien été enregistré !<br />Merci !</font><br />";
                                        // On peut enregistrer le message dans la table
										 mysql_query("INSERT INTO farcry2 VALUES(\"\", \"" . $pseudo . "\", \"" . $message . "\")");
					mysql_query("INSERT INTO farcry2 VALUES('', '" . $note . "', '" . $date_complete . "', '" . $pseudo . "', '" . $message . "')");

							}
							//Donc si "erreur" contient une réponse... qu'il y a erreur quoi XD :
						else 
							{
							echo "<font style=\"color:red;\">Une erreur s'est produite : ".$erreur. "</font><br />";
							}
					
					
								
					
				}
				
		// --------------- Etape 2 -----------------
		// On écrit les liens vers chacune des pages
		// -----------------------------------------
			
			//on place le nombre de message pas page dans une variable
		$nombreDeMessagesParPage = 20;
			//on récupère le nombre de total de messages
		$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM farcry2');
		$donnees = mysql_fetch_array($retour);$totalDesMessages = $donnees['nb_messages'];
			//on calcule le nombre de page à créer
		$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
			//maintenant je fais une boucle pour savoir combien de lien je vais créer
			
		echo 'Page : ';
				for ($i = 1 ; $i <= $nombreDePages ; $i++)
					{
						echo '<a href="farcry2.php?page=' . $i . '">' . $i . '</a>';
					}
		?>
		</p>

		<?php
		// --------------- Etape 3 ---------------
		// Maintenant, on va afficher les messages
		// ---------------------------------------
			if (isset($_GET['page']))
				{
					// $page = $_GET['page'];    cette forme est bonne, mais ajouter intval permet d'afficher obligatoirement un nombre..  question de sécurité
					$page = intval($_GET['page']);
				}
			else
				{
					$page = 1; //page = 1 si c'est la première fois que le visiteur arrive sur le livre or, il n'y a donc pas de get, donc pas de changement de page.
				}
			
			// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
			$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
			
			$reponse = mysql_query('SELECT * FROM farcry2 ORDER BY ID DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
				
			while ($donnees = mysql_fetch_array($reponse))
{
         echo '<p><em><small>' . $donnees['date_complete'] . '</small></em><br /><strong>' . stripslashes($donnees['pseudo']) . '</strong> a écrit :<br />' . stripslashes($donnees['message']) . '<br /><em>Note attribuée : ' . $donnees['note'] . '</em></p>';
}

mysql_close(); // On n'oublie pas de fermer la connexion à MySQL
	
		?>
Merci d'avance pour votre aide ! :wink: