[RESOLU] Système de notation

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 : [RESOLU] Système de notation

Re: Système de notation

par Larker » 24 févr. 2015, 21:50

C'est bon, j'ai réussi à trouver d'où venait l'erreur, merci de votre aide. ;)

Re: Système de notation

par Larker » 22 févr. 2015, 12:49

Et la note qui est stockée dans la bdd est un entier donc en théorie ça devrait fonctionner, non ?

Re: Système de notation

par Larker » 21 févr. 2015, 20:17

Je ne vois pas tellement ou tu veux en venir, la requête retourne simplement la note qui a été donné par le membre en fonction de la news qui est affichée.

Re: Système de notation

par tof73 » 21 févr. 2015, 19:43

que retourne $bdd->query ?
si c'est un tableau, comparer un tableau avec un entier, cela peut produire des résultats inattendus.

Re: Système de notation

par Larker » 21 févr. 2015, 19:05

Personne ne sait d'où pourrait venir le problème ? :/

Re: Système de notation

par Larker » 20 févr. 2015, 14:01

Bonjour à tous,

Donc après avoir légèrement laissé tomber par manque de temps, je suis revenu sur mon problème pour afficher la note d'un membre qui a déjà voté à la place du système de notation.
Désormais ça s'affiche bien mais il doit y avoir un problème avec la soustraction car ça m'affiche à chaque fois une seule étoile jaune et 9 grises alors que pour la note j'avais donné 7/10.
Donc en théorie, il devrait y avoir 7 étoiles jaunes et 3 grises.

Voici un aperçu :
Image

Et voici mon code :
<?php
$posteur = $bdd->quote($_SESSION['id']);
$id_news = $bdd->quote($_GET['id']);
$getNoteQuery = $bdd->query("SELECT * FROM `note_news` WHERE posteur=$posteur AND id_news=$id_news");
$vote = $bdd->query("SELECT note FROM `note_news` WHERE posteur=$posteur AND id_news=$id_news");
if( $getNoteQuery->fetch() !== false )
{  
// Etoiles jaunes
$etoilejaune = '<img src="http://www.sixmsens.com/interface/etoile-pleine.png"/>';
$i = 0;
while ($i != $vote) {
echo $etoilejaune;
$i++;}
 
// Etoiles grises
$etoilegrise = '<img src="http://www.sixmsens.com/interface/etoile-vide.png"/>';
$i = 0;
while ($i != (10 - $vote)) {
echo $etoilegrise;
$i++;}
 }
else
{
   echo '<div class="rating rating2"><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=10" title="Donner 10/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=9" title="Donner 9/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=8" title="Donner 8/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=7" title="Donner 7/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=6" title="Donner 6/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=5" title="Donner 5/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=4" title="Donner 4/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=3" title="Donner 3/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=2" title="Donner 2/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=1" title="Donner 1/10">★</a>
	</div>';
}
?>
Merci d'avance à ceux qui pourront m'aider à résoudre ce problème. ;)

Re: Système de notation

par Larker » 15 déc. 2014, 18:43

Salut,

Je suis toujours bloqué, j'ai essayé ça :
<?php
$posteur = $bdd->quote($_SESSION['id']);
$id_news= $bdd->quote($_GET['id']);
$getNewsQuery = $bdd->query("SELECT note AS 'test' FROM `note` WHERE posteur=$posteur AND id_news=$id_news");
if( $getNewsQuery->fetch() !== false )
{  
// Etoiles jaunes
$etoilejaune = '<img src="./interface/etoile-pleine.png"/>';
$vote= $getNewsQuery['test'];
$i = 0;
while ($i != $vote) {
echo $etoilejaune;
$i++;}
 
// Etoiles grises
$etoilejaune = '<img src="./interface/etoile-vide.png"/>';
$i = 0;
while ($i != (10 - $vote)) {
echo $etoilegrise;
$i++;}
 }
else
{
   echo '<div class="rating rating2"><!--
	        --><a href="?mod=news&id='.$_GET['id'].'&stars=10" title="Donner 10/10">★</a><!--
                --><a href="?mod=news&id='.$_GET['id'].'&stars=9" title="Donner 9/10">★</a><!--
                --><a href="?mod=news&id='.$_GET['id'].'&stars=8" title="Donner 8/10">★</a><!--
                --><a href="?mod=news&id='.$_GET['id'].'&stars=7" title="Donner 7/10">★</a><!--
                --><a href="?mod=news&id='.$_GET['id'].'&stars=6" title="Donner 6/10">★</a><!--
                --><a href="?mod=news&id='.$_GET['id'].'&stars=5" title="Donner 5/10">★</a><!--
                --><a href="?mod=news&id='.$_GET['id'].'&stars=4" title="Donner 4/10">★</a><!--
                --><a href="?mod=news&id='.$_GET['id'].'&stars=3" title="Donner 3/10">★</a><!--
                --><a href="?mod=news&id='.$_GET['id'].'&stars=2" title="Donner 2/10">★</a><!--
                --><a href="?mod=news&id='.$_GET['id'].'&stars=1" title="Donner 1/10">★</a>
	</div>';
} ?>
Le problème c'est que ça me renvoie cette erreur : Fatal error: Cannot use object of type PDOStatement as array in /public_html/accueil/modules/module-film.php on line 273
La ligne 273 étant : $vote= $getNewsQuery['test'];

Merci à ceux qui pourront m'aider sur cette impasse qui me bloque depuis plusieurs semaines maintenant. ;)

Re: Système de notation

par Larker » 04 déc. 2014, 12:17

Oui mais je ne vois pas où et surtout comment la préciser ...
J'ai essayé pas mal de chose mais ça ne fonctionne jamais.

Est-il possible de définir la variable directement dans la requête ?

Re: Système de notation

par Nestecha » 03 déc. 2014, 22:27

$vote c'est quoi ? Tu ne l'as définie nul part.

Re: Système de notation

par Larker » 03 déc. 2014, 21:10

Donc j'ai essayé en mettant des images pour tester si ça fonctionne sauf que ça ne me met 10 étoiles grises et la soustraction de 10 - note du posteur ne fonctionne pas.
<?php
$posteur = $bdd->quote($_SESSION['id']);
$id_news= $bdd->quote($_GET['id']);
$getNewsQuery = $bdd->query("SELECT id,posteur,id_news,note AS '$vote' FROM `note` WHERE posteur=$posteur AND id_news=$id_news");
if( $getNewsQuery->fetch() !== false )
{  

// Etoiles jaunes 
$etoilejaune = '<img src="./interface/etoile-pleine.png"/>';
$i = 0;
while ($i != $vote) {
echo $etoilejaune;
$i++;}
 
// Etoiles grises
 $etoilegrise = '<img src="./interface/etoile-vide.png"/>';
$i = 0;
while ($i != (10 - $vote)) {
echo $etoilegrise;
$i++;}
 }
else
{
   echo '<div class="rating rating2"><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=10" title="Donner 10/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=9" title="Donner 9/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=8" title="Donner 8/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=7" title="Donner 7/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=6" title="Donner 6/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=5" title="Donner 5/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=4" title="Donner 4/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=3" title="Donner 3/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=2" title="Donner 2/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=1" title="Donner 1/10">★</a>
	</div>';
}
?>
Merci d'avance à ceux qui pourront m'indiquer ou se trouve mon erreur. ;)

Re: Système de notation

par Larker » 03 déc. 2014, 14:58

Salut,

Je suis partie la dessus :
<?php
$posteur = $bdd->quote($_SESSION['id']);
$id_news= $bdd->quote($_GET['id']);
$getNewsQuery = $bdd->query("SELECT * FROM `note` WHERE posteur=$posteur AND id_news=$id_news");
if( $getNewsQuery->fetch() !== false )
{  
// Etoiles jaunes
 
$i = 0;
while ($i != $vote) {
echo $etoilejaune;
$i++;}
 
// Etoiles grises
 
$i = 0;
while ($i != (10 - $vote)) {
echo $etoilegrise;
$i++;}
 }
else
{
   echo '<div class="rating rating2"><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=10" title="Donner 10/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=9" title="Donner 9/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=8" title="Donner 8/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=7" title="Donner 7/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=6" title="Donner 6/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=5" title="Donner 5/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=4" title="Donner 4/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=3" title="Donner 3/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=2" title="Donner 2/10">★</a><!--
		--><a href="?mod=news&id='.$_GET['id'].'&stars=1" title="Donner 1/10">★</a>
	</div>';
}
?>
Mais le problème c'est que je ne vois pas comment préciser les variables $etoilejaune et $etoilegrise.

Des idées ?

Re: Système de notation

par Larker » 27 nov. 2014, 19:44

D'accord merci, donc c'est bon pour la vérification, par contre je ne vois toujours pas comment conserver la note du membre une fois qu'il a voté sous forme d'étoiles.
Par exemple s'il a voté 7/10 je voudrais 7 étoiles en jaune et les autres en grises.

Mais je vois pas du tout comment faire en fait. Des idées ?

Re: Système de notation

par Nestecha » 17 nov. 2014, 16:14

Oui c'est ca !

Re: Système de notation

par Larker » 17 nov. 2014, 11:13

Donc en fait je dois remplacer mon session id pour $posteur par le pseudo du joueur pour voir s'il y a déjà un enregistrement avec ce pseudo pour cette id de news ?

Re: Système de notation

par Nestecha » 16 nov. 2014, 23:54

Pas vraiment non, puisqu'il lui suffit d'ouvrir une nouvelle fenêtre de navigation privée pour que $_SESSION disparaisse et qu'il puisse voter à nouveau !

Si tu veux faire ça sans changer de page, il faut utiliser de l'AJAX (pour que la note s'insère tout de même dans la base de données).

Si tu t'en fiches que la page s'actualise lorsqu'il aura voté, et bien lorsqu'il réactualisera la page il devrait voir la note qu'il a mis, si tu as déjà fait l'affichage.