SELECT exactmatch VS LIKE : résultat différent

Petit nouveau ! | 2 Messages

19 déc. 2016, 11:29

Bonjour,
je tente de résoudre un problème complètement incompréhensible pour moi (je suis néophyte en développement).

J'enregistre les ips des visiteurs dans une table ips_liste qui a cette structure :
id|ip|date|timestamp

le colonne ip est un varchar.

avec cette requête, l'ip de l'internaute est bien trouvée :
<?php
// connection BDD etc...

$result1 = $mysqli->query("SELECT ip FROM ips_liste WHERE ip LIKE '%".$_SERVER["REMOTE_ADDR"]."%'");
// Détermine le nombre de lignes du jeu de résultats
$nb_de_resultat_ip = $result1->num_rows;

if ($nb_de_resultat_ip > 0)
{
echo "IP existante en base";
}
?>
mais si j'effectue la même requête sans le LIKE, le SELECT ne fonctionne pas
<?php
// connection BDD etc...

$result1 = $mysqli->query("SELECT ip FROM ips_liste WHERE ip ='".$_SERVER["REMOTE_ADDR"]."'");
// Détermine le nombre de lignes du jeu de résultats
$nb_de_resultat_ip = $result1->num_rows;

if ($nb_de_resultat_ip > 0)
{
echo "IP existante en base";
}
?>
Merci pour votre aide, je sèche depuis des heures sur cet écueil.

Mammouth du PHP | 785 Messages

19 déc. 2016, 17:11

possible qu'il y ait d'autres caractères comme des esapces dans le champ ip de la table. alors cela passe grâce aux % mais pas sans.

Petit nouveau ! | 2 Messages

20 déc. 2016, 02:28

Oui c'était bien ça, un retour chariot que je n'avais pas vu en de champ. Merci.