par
legniarf » 31 mai 2006, 12:41
Bonjour,
J'ai créé une base de donnée des rues de Paris. Dans un formulaire, les utilisateurs tapent le numéro et le nom de leur rue et en réponse ils ont l'hôpital dont ils dépendent.
Tout marchait bien et au moment de mettre la dernière patte à mon code PHP, il ne trouve pas de réponse quand on tape un numéro compris entre 10 et 20. Les autres numéros fonctionnent parfaitement.
J'ai réduit ma base MySQL et mon code PHP au strict minimum pour isoler l'erreur, mais je ne l'ai pas trouvée.
J'ai créé une table intitulée "rues", dans laquelle il y a 4 champs : "nom_de_la_voie" VARCHAR(255), "reponse" VARCHAR(8), "pair_min"
VARCHAR(4) et "pair_max" VARCHAR(4). Je les ai respectivement remplis avec les données suivantes : "HAUTEVILLE", "XX", "2" et "9998".
J'ai écrit la requête SQL suivante :
Code : Tout sélectionner
$sql = "SELECT reponse
FROM rues
WHERE nom_de_la_voie = 'HAUTEVILLE'
AND pair_min <= '8'
AND pair_max >= '8'";
$req = mysql_query($sql)
or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result ($req);
mysql_close ();
if(empty($data['reponse']))
{echo '<font color="red">Réponse non trouvée.
Vérifiez l\'exactitude des informations que vous avez saisies.</font>';}
else
{echo 'La réponse est '.$data['reponse'].'.';}
Dans ce cas la réponse est trouvée. Idem si je mets à la place du 8 un 6, un 24 ou un 31. Mais si je mets un chiffre compris entre 10 et 19, ça affiche ma phrase d'erreur :
Réponse non trouvée. Vérifiez l'exactitude des informations que vous avez saisies.
(De plus, hier la réponse était trouvée quand je rentrais un chiffre impair compris entre 11 et 19 !)
Et tout ça ça le fait aussi bien en local sur mon Macintosh que sur mon espace web chez Free.