Requete SLQ/php avec LIKE

Requete SLQ/php avec LIKE - SQL/NoSQL - Programmation

Marsh Posté le 04-05-2005 à 17:08:07    

Bonjour,  
 
voilà j'ai vu et revu tout type d'article concernant le LIKE °  
sur ce, je m'y applique..
voilà un code qui marche parfaitement ( avec passage de la variable alpha par un <h ref> sur la page précédente .. la variable en quesiton va de lettre : 'A' à 'Z' ( donc seulement une seule lettre )
---------------------------------------
 
$select_alpha = " select UTILISATEUR.nom, UTILISATEUR.prenom from UTILISATEUR where UTILISATEUR.nom LIKE \"$alpha%\" ";
 
$res_alpha = Requete ($select_alpha);
 
while ( $aff_alpha = mysql_fetch_array($res_alpha))
..  
 
etc.... ça marche impecc °  
 
-----------------------------------------
 
Maintenant je prends simplement la même requête, mais qui vient d'un POST d'une zone texte : ce qui me donne :
 
$select_nom = " select UTILISATEUR.nom, UTILISATEUR.prenom from UTILISATEUR where UTILISATEUR.nom LIKE \"$nom_util%\" ";
 
-------------------------------------------
 
( type on saisie ar, il me donne tous les noms commençcant par 'ar'..
hors ici.. il me sort systématiquement toute la liste ( avec quelques résultats affichés en plusieurs fois ° et je vous avoue que je n'ai aucune idée du pourquoi du comment °° )
 
auriez vous une idée ?? ma requête est t-elle mauvaise ( pourtant je n'ai aps de retour d'erreur mais le résultat me laisse bouche bée.
 
 
Merci encore si vous avez des idées là dessus °
 

Reply

Marsh Posté le 04-05-2005 à 17:08:07   

Reply

Marsh Posté le 04-05-2005 à 17:12:42    

Essaie d'afficher ta requete lors de l'execution pour voir s'il n'y a pas un probleme lors de la transmission
 
Pierre

Reply

Marsh Posté le 04-05-2005 à 22:38:43    

la voici :
avec la saisie dans TEXT : ar
 
du code :
 
$select_nom = " select UTILISATEUR.nom, UTILISATEUR.prenom from UTILISATEUR where UTILISATEUR.nom LIKE \"$nom_util%\" ";
 
j'obtiens l'affichage suivant :
 
 select UTILISATEUR.nom, UTILISATEUR.prenom from UTILISATEUR where UTILISATEUR.nom LIKE "ar%"
 
 ensuite je fais une fonction qui est déjà utilisée et qui marche très bien °
 
et toujours pas de résultat pourtant les données existent.
 
ça semble correct non ?
merci si réponse il y a  °° ;)

Reply

Marsh Posté le 17-05-2005 à 09:28:59    

Utilise plutot des simples quotes à la place des doubles pour ton LIKE.
Ensuite, si nom_util96 est le nom du champ de ton formulaire et que ton formulaire utilise la méthode POST, utilise plutôt $_POST['nom_util96'] que $nom_util96, pour des raisons de sécurité. C'est un réflexe à prendre sinon tu risques de rester bloqué longtemps, très longtemps sur une faille de sécurité. (Imagine le type tape cette url, en imaginant que nom_util96 est un champ que le type ne doit pas pouvoir controler : tapage.php?nom_util96='téfoutu'. Ton script php qui utilise $nom_util96 prendra la valeur 'téfoutu' et là, tu seras probablement foutu. Si ton script utilise $_POST['nom_util96'], tu seras pas foutu. En gros, c'est ça).
Ca ne résoudra sûrement pas tes problèmes, mais bon... Des trucs comme ça, ça fait jamais de mal.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed