par
Hubert Roksor » 17 sept. 2007, 21:19
Je ne sais pas pourquoi ton code ne donne pas ce que tu attends, mais voici une solution alternative. Plutôt que de stocker tes IPs sous forme de texte, tu peux les convertir sous forme de nombre grâce à ip2long(). Sous cette forme, les IPs doivent être stockées dans une colonne de type
INT (
pas UNSIGNED).
Ensuite, comme le disait
iclo, il te faut utiliser la clause WHERE pour ne pas faire 100x le boulot demandé. Tant que tu y es, n'oublie pas d'ajouter un index sur la colonne en question.
Le script devient alors
<?php
$reponse = mysql_query("SELECT name FROM site_members WHERE ip = " . ip2long($_SERVER["REMOTE_ADDR"]));
while ($donnees = mysql_fetch_assoc($reponse))
{
echo $donnees['name'];
}
Je ne sais pas pourquoi ton code ne donne pas ce que tu attends, mais voici une solution alternative. Plutôt que de stocker tes IPs sous forme de texte, tu peux les convertir sous forme de nombre grâce à ip2long(). Sous cette forme, les IPs doivent être stockées dans une colonne de type [b]INT[/b] ([u]pas[/u] UNSIGNED).
Ensuite, comme le disait [b]iclo[/b], il te faut utiliser la clause WHERE pour ne pas faire 100x le boulot demandé. Tant que tu y es, n'oublie pas d'ajouter un index sur la colonne en question.
Le script devient alors
[php]<?php
$reponse = mysql_query("SELECT name FROM site_members WHERE ip = " . ip2long($_SERVER["REMOTE_ADDR"]));
while ($donnees = mysql_fetch_assoc($reponse))
{
echo $donnees['name'];
}[/php]