[RESOLU] Système de notation

Nestecha
Invité n'ayant pas de compte PHPfrance

03 déc. 2014, 22:27

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

Eléphant du PHP | 283 Messages

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 ?

Eléphant du PHP | 283 Messages

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

Eléphant du PHP | 283 Messages

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

Eléphant du PHP | 283 Messages

21 févr. 2015, 19:05

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

Mammouth du PHP | 688 Messages

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.

Eléphant du PHP | 283 Messages

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.

Eléphant du PHP | 283 Messages

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 ?

Eléphant du PHP | 283 Messages

24 févr. 2015, 21:50

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