Page 1 sur 1

patos

Posté : 17 mai 2005, 16:28
par patos
Bonjour,

j'ai un soucis avec la condition like dans le code suivant:

Code : Tout sélectionner

$arr=explode(" ",$keyword); $key=implode("%",$arr); $sqlsearch=mysql_query("SELECT * FROM profile WHERE nom LIKE '%$key%' OR prenom LIKE '%$key%'");
si par exemple dans la table j'ai comme enregistrement:
nom:dupont prenom:patrick
je recherche patrick >> j'ai un résultat - normal
je recherche dupont >> j'ai un résultat - normal
je recherche patrick dupont >> je n'ai pas de résultat - normal aussi mais ca m'embête...

y a-t-il quelque chose qui pourrait ressembler à "appartient" pour mysql??
ou suis-je obliger de faire un boucle en php du type:

Code : Tout sélectionner

foreach($arr as $key){ patatipatata }
j'espère être clair. Merci pour vos tuyaux.

++

Re: patos

Posté : 17 mai 2005, 18:54
par albat
Il faut que tu exploses ta donnée saisie (en fonction des espaces qu'elle contient).

Ensuite, tu peux lancer ta requête (pour laquelle je te conseille l'écriture suivante)
dans une boucle pour chacun des fragments que tu as isolés ("Patrick Dupont" -> "Patrick", puis "Dupont")
$sqlsearch = mysql_query("SELECT * FROM profile WHERE nom LIKE '%".$key."%' OR prenom LIKE '%".$key."%'");

Re: patos

Posté : 18 mai 2005, 10:44
par julien
Il faut que tu exploses ta donnée saisie (en fonction des espaces qu'elle contient).

Ensuite, tu peux lancer ta requête (pour laquelle je te conseille l'écriture suivante)
dans une boucle pour chacun des fragments que tu as isolés ("Patrick Dupont" -> "Patrick", puis "Dupont")
$sqlsearch = mysql_query("SELECT * FROM profile WHERE nom LIKE '%".$key."%' OR prenom LIKE '%".$key."%'");
Je suis presque d'accord avec toi, si ce n'est que je ferai une boucle PHP pour regénérer mes critères ce qui me permettrait ensuite de n'effectuer qu'une seule requete sur la base de données.
En plus ca permettrait simplement de ne récupérer que des résultats distincts et pas plusieurs fois la même personne.

PS: peut etre que c'est ce que tu as voulu dire, dans ce cas désolé si je t'ai mal compris ;)

Re: patos

Posté : 18 mai 2005, 11:18
par albat
En plus ca permettrait simplement de ne récupérer que des résultats distincts et pas plusieurs fois la même personne.
Il est vrai que ma proposition risque fort de générer des doublons... :oops:

patos

Posté : 18 mai 2005, 15:53
par patos
c'est bon ca roule. merci :D