patos

Petit nouveau ! | 5 Messages

17 mai 2005, 16:28

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.

++

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

17 mai 2005, 18:54

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."%'");

Eléphant du PHP | 52 Messages

18 mai 2005, 10:44

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 ;)

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

18 mai 2005, 11:18

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:

Petit nouveau ! | 5 Messages

18 mai 2005, 15:53

c'est bon ca roule. merci :D