|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() FX Inscription : juillet 2010 Messages : 75 ![]() |
bonjour,
j'ai un champ sur lequel je souhaite effectuer une recherche. Ce champ se compose de la manière suivante : Mot-clé1; Mot-clé2; Mot-clé3; je souhaiterais faire une requête pour une autocomplétion en allant rechercher uniquement sur le mot-clé1 donc, la première partie avant le premier point-virgule. Comment construire ma requete MySQL ? Voici ma requête actuellement : Code :
$sql="SELECT DISTINCT mots_cles FROM photos WHERE mots_cles LIKE '%".$_GET['term']."%' ORDER BY mots_cles ASC;"; |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 853 ![]() |
salut,
déjà ON NE PASSE JAMAIS DIRECTEMENT DES DONNEES VENANT DE $_GET ou $_POST sous peine de permettre des attaques par injection... c'est quoi ce champ? une variable php?
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
10
|
|
|
#3 |
|
Futur Membre du Club
![]() FX Inscription : juillet 2010 Messages : 75 ![]() |
c'est un champ permettant une recherche sur des mots-clés en ajax.
|
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 853 ![]() |
ce qui se passe coté js n'est pas important quand tu parles d'un truc qui agit coté php/mysql...
faut que tu le nommes pour qu'on sache où il intervient dans ta requête... est ce que c'est ton $_GET?
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() FX Inscription : juillet 2010 Messages : 75 ![]() |
evidemment, c'est le $_GET c'est la seule condition WHERE dans la requete.
Je cherche à stopper la recherche sur mon champ après le premier point-virgule. Y-a-t-il une possibilité en Mysql ? |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 853 ![]() |
rien n'est évident.... ça pouvait décrire la table mots-cles... oublie pas que les autres sont pas à fond dans ton projet et sa conception
oui, mais c'est moins simple et optimisé que de scinder ta variable en php et de passer juste la première entrée du tableau obtenu par un split par exemple sur ton $_GET... en mysql tu dois localiser le 1er ';' et scinder ta chaine en 2 par rapport à cette position... dans tous les cas tu auras une boucle de balayage des mots clés... avec peu des mots-clés tu verras pas vraiment la différence entre les 2 en terme de temps d'exécution...
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
00
|
|
|
#7 | |
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
En combinant substring et instr, quleque chose comme :
Code :
SUBSTRING(mots_cles,1,instr(mots_cles,';')) LIKE ... Citation:
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com