[PHP/MySQL] requete avec "LIKE $a" mais avec si $a='%' ?

requete avec "LIKE $a" mais avec si $a='%' ? [PHP/MySQL] - PHP - Programmation

Marsh Posté le 09-03-2004 à 12:13:57    

salut,
 
j'ai un problème assez embêtant :
 
j'ai fait un formulaire de recherche avec un menu déroulant : "option1" (value=1), "option2" (value=2), "option3" (value=3) et "toutes les options" (value=0).
 
ma requête :
 


SELECT table1.nom_id,table1.nom
FROM table1,table2
WHERE table1.nom_id=table2.nom_id
AND table2.nom_id LIKE '$option'
AND table1.nom LIKE '%$nom%'
ORDER BY table1.nom


 
j'ai rajouté :
 


if ($option==0) $option='%'


 
quand je choisi une option, ça marche correctement, mais quand je choisis "Toutes les options", ça ne m'affiche rien.
 
si je mets directement dans la requête '%' à la place de '$option', ça marche.
 
 
merci de votre aide :jap:
 
 
je voulais faire avec ="tout", mais je ne vois pas comment écrire "tout" ?


Message édité par Pizz le 09-03-2004 à 12:25:12

---------------
C'est quand on a le nez dans la tomate qu'on voit mieux la tomate !
Reply

Marsh Posté le 09-03-2004 à 12:13:57   

Reply

Marsh Posté le 09-03-2004 à 12:25:01    

$confition=''
if ($option==0) $condition = "AND table2.nom_id LIKE '$option'"
 
puis la requete
 
SELECT table1.nom_id,table1.nom  
FROM table1,table2  
WHERE table1.nom_id=table2.nom_id  
' + $condtion + '
AND employes.nom LIKE '%$nom%'  
ORDER BY table1.nom  
 
c comme ca que je ferais( fautes de syntaxe en moins)

Reply

Marsh Posté le 09-03-2004 à 12:26:00    

DjobiDjoba a écrit :

$confition=''
if ($option==0) $condition = "AND table2.nom_id LIKE '$option'"
 
puis la requete
 
SELECT table1.nom_id,table1.nom  
FROM table1,table2  
WHERE table1.nom_id=table2.nom_id  
' + $condtion + '
AND employes.nom LIKE '%$nom%'  
ORDER BY table1.nom  
 
c comme ca que je ferais( fautes de syntaxe en moins)
 


 
merci, je n'y avais pas pensé  :)  
 
je teste ça.
 


---------------
C'est quand on a le nez dans la tomate qu'on voit mieux la tomate !
Reply

Marsh Posté le 09-03-2004 à 12:26:33    

ya l'histoire du AND k pas bon là ;)

Reply

Marsh Posté le 09-03-2004 à 12:33:32    

DjobiDjoba a écrit :

ya l'histoire du AND k pas bon là ;)


 
alors c pour ça que ça marche pas  :o


---------------
C'est quand on a le nez dans la tomate qu'on voit mieux la tomate !
Reply

Marsh Posté le 09-03-2004 à 12:44:13    

une autre idée ?  :cry:
 
 
j'ai trouvé une solution : mettre la requete complète dans le "if".
 
 
mais j'amerai quand meme savoir comment mettre << table2.nom="tout" >> en MySQL ?
 


Message édité par Pizz le 09-03-2004 à 12:48:07

---------------
C'est quand on a le nez dans la tomate qu'on voit mieux la tomate !
Reply

Marsh Posté le 09-03-2004 à 13:04:20    

table2.nom = "tout" n'as pas d'équivalent en SQL. Il suffit de ne pas préciser la clause dans le where....
 
la solution proposée m'a l'air bien. je ne vois pas le problème du AND, vu que le WHERE est utilisé pour la jointure


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 15-03-2004 à 14:29:00    

je pense qu'il manque un espace et un i
 
WHERE table1.nom_id=table2.nom_id ' + $condition + ...
 

Reply

Sujets relatifs:

Leave a Replay

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