bonjour j'ai un problème d'affichage d'un echo le echo en question correspond à du texte inséré en fonction de si le visiteur a déjà voté (grâce à l'ip) voici le code php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 <?php // fonction recuperation de l'ip du visiteur function get_ip(){ if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){ $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];} elseif(isset($_SERVER['HTTP_CLIENT_IP'])){ $ip = $_SERVER['HTTP_CLIENT_IP'];} else{ $ip = $_SERVER['REMOTE_ADDR'];} return $ip;}$ip = get_ip(); // fin de fonction get_ip $IDgetted_projet = "-1"; if (isset($_GET['ID'])) { $IDgetted_projet = $_GET['ID']; } // fonction de récupération de la moyenne pour le projet $notemoyenne = "SELECT ROUND(AVG(note)) AS moyenne FROM $rater_dbname.$rater_tableName WHERE IDparentnote='$IDgetted_projet'"; // envoi de la requête $req7 = mysql_query($notemoyenne) or die('Erreur SQL !<br>'.$notemoyenne.'<br>'.mysql_error()); while($data7 = mysql_fetch_assoc($req7)) { // fonction de récupération du nombre de votes $numbervotes = "SELECT COUNT(note) AS nbvotes FROM $rater_dbname.$rater_tableName WHERE IDparentnote='$IDgetted_projet'"; // envoi de la requête $req3 = mysql_query($numbervotes) or die('Erreur SQL !<br>'.$numbervotes.'<br>'.mysql_error()); // on fait une boucle qui va faire un tour pour chaque enregistrement while($data3 = mysql_fetch_assoc($req3)) {// on affiche les informations demandées // fonction afficher la note que vous avez donné au projet si vous avez déjà voté $currentvoted = "SELECT note FROM $rater_dbname.$rater_tableName WHERE IP='$ip' AND IDparentnote='$IDgetted_projet'"; // envoi de la requête $req5 = mysql_query($currentvoted) or die('Erreur SQL !<br>'.$currentvoted.'<br>'.mysql_error()); // on fait une boucle qui va faire un tour pour chaque enregistrement while($data5 = mysql_fetch_assoc($req5)) {// on affiche les informations demandées // fonction pour savoir si le visiteur a déjà voté $iphashevoted = "SELECT COUNT(IP) AS Ips FROM $rater_dbname.$rater_tableName WHERE IP='$ip' AND IDparentnote='$IDgetted_projet'"; // envoi de la requête $req4 = mysql_query($iphashevoted) or die('Erreur SQL !<br>'.$iphashevoted.'<br>'.mysql_error()); // on fait une boucle qui va faire un tour pour chaque enregistrement while($data4 = mysql_fetch_assoc($req4)) {// on affiche les informations demandées if ($data4['Ips'] > 0) { echo '<span id="yourvote">votre note : <font color="#ff9900">'.$data5['note'].'/10</font></span> <span id="changenote">Modifier ma note -></span><p id="blocvotemoyenne">Note moyenne :<font color="#ff9900"> '.$data7['moyenne'].' ⁄10 </font>(<font color="#784e00">'.$data3['nbvotes'].'</font><font size="-1"> votes</font>)</p>';} else { echo '<p id="clicforvote">Cliquez ici pour donner une note à ce projet -></p><p id="blocvotemoyenne">Note moyenne :<font color="#ff9900"> '.$data7['moyenne'].' ⁄10 </font>(<font color="#784e00">'.$data3['nbvotes'].'</font><font size="-1"> votes</font>)</p>';} } } } } ?>
le bloc qui ne s'affiche pas (alors que la condition est remplie vis à vis de la BD) est celui-ci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 echo '<p id="clicforvote">Cliquez ici pour donner une note à ce projet -></p><p id="blocvotemoyenne">Note moyenne :<font color="#ff9900"> '.$data7['moyenne'].' ⁄10 </font>(<font color="#784e00">'.$data3['nbvotes'].'</font><font size="-1"> votes</font>)</p>';}
Vous pouvez apercevoir la page ici (utilisez firebug car clic droit désactivé) :
http://lefebvresbook.monespace.net/i...tails.php?ID=1
Je précise : en local lorsqu'il y a bien un vote déjà enregistré à mon ip à savoir 127.0.0.1 le bloc affiche bien mon vote, un lien pour modifier la note et la moyenne !
Partager