If et else if php et mysql

Résolu/Fermé
MrYo - 23 avril 2011 à 22:40
 MrYo - 23 avril 2011 à 23:38
Bonjour, je suis actuellement en train créer un site internet et je travaille actuellement sur un compteur de visites avec adresse ip basé sur une condition if et else if.
Quand un visiteur arrive sur la page, dans ma table vues1, le champ number s'auto incrémente et le champ ip note l'adresse ip, mais quand je retourne sur la page avec la même adresse ip, celle ci se remarque dans ma table vues1.

Ma condition ci dessous :


<?php
echo $_SERVER['REMOTE_ADDR'];
$reponse = $bdd->query('SELECT ip FROM vues1 WHERE number=122');
if ($_SERVER['REMOTE_ADDR']==$donnees['ip'])
{
while ($donnees = $reponse->fetch())
echo 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
}
else if ($_SERVER['REMOTE_ADDR']!=$donnees['ip'])
{
while ($donnees = $reponse->fetch())
echo 'bbbbbbbbbbbbbbbbbbabbbbbbbbbbbbbbbbbbbbbbbbbbbbbb';
}

?>

PS: La série de a et de b me permettent de voir ce qui a été choisi.

Cordialement.

1 réponse

Bonsoir

Il y a un gros problème dans ta façon de faire : tu testes une valeur (if ($_SERVER['REMOTE_ADDR']==$donnees['ip']) ) avant de l'avoir lue, puis tu la lis en faisant $donnees = $reponse->fetch().

Deuxième truc illogique (mais qui n'empêche pas de marcher) si tu fais if (condition) , il est inutile dans le else de préciser if (!condition) puisque par définition du else, il s'exécute quand (!condition) est vrai.

Enfi, je ne vois comment ce code te permet de vérifier si une IP est déjà présente dans ta table, puis ton WHERE porte sur le compteur et non pas sur l'IP. Tant que ton compteur ne sera pas à 122, ton IP ne sera pas fournie par ta requête, je ne vois pas quel sens ça a.
0
J'ai changé quelques trucs dont ce que tu m'as dit et tout marche correctement. Merci pour ton aide.
0