# PHP > PHP & Base de donnes > [MySQL] [MySQL] requte sql recherche de mots cls

## lanysteph

Bonjour 

Voil ce que je dois faire : j'ai un utilisateur qui doit rentrer un mot cl dans une zone de recherche. J'ai une table produit avec le Nom1P du produit et le  Nom2P  du produit c'est  dire que le nom du produit est divis en 2 : par exemple pour le mot cl "disque dur" le Nom1p = "disque" et Nom2P = "dur".
Dans ma table j'ai aussi le nom qui correspond  la marque du produit.

Le problme est apr exemple que lorsque l'utilisateur entre 1 mot cl correspondant au produit et 1 mot cl correspondant au nom la requte me ressort dans mon tableau 2 fois le bon rsultat et une fois le mauvais rsultat.

Voici ma requte : 



```

```

Merci de m'aider  ce que dans mon tableau si par exemple je cherche un "ecran sony" il me ressorte que l'cran sony et pas tous les crans se trouvant dans ma table produit.

 ::merci::   ::salut:: 

Code PHP supprim par Magnus. Merci d'y penser  l'avenir

----------


## galaad666

j'ai le meme probleme que toi avec le passage de variable dans une clause where je me demande si on peut mettre un champ ou un controle dans une requete essaye de mettre



```

```

----------


## lanysteph

J'ai une question...

Peut on mettre 3 AND de suite dans une requte ? j'ai essay et a n'a pas l'air de fonctionner.

Voici ma requete : 


```
SELECT * FROM produit where Nom1P LIKE 'motcle1' and Nom2P LIKE 'motcle2' and nom LIKE 'motcle3';
```

merci

PS : j'ai essay de mettre des & comme tu me l'as suggr mais a ne change rien.

----------


## Fleur-Anne.Blain

> J'ai une question...
> 
> Peut on mettre 3 AND de suite dans une requte ? j'ai essay et a n'a pas l'air de fonctionner.


Bien sur tu peux mettre plusieurs AND, mais tu peux aussi mettre :


```

```

ou ta liste de valeur correspond  tous les mots clefs de tes AND.
@+

----------


## ju0123456789

Hello !

Ce post date, mais il em semble qu'il ressemble typiquement  un probleme dont j'ai eu  faire il y a quelques mois quand je dbutais sur ce site  ::): 

Tu dclares ta variable (recupration du contenu tapp dans le champs de recherche)


```
$result = htmlentities( $_POST['rechercher'] );
```

tu xcutes l'action uniquement sur il y a eu l'action de RECHERCHE


```

```

Si le rsultat de la recherche n'est pas vide et s'il est suprieur  1 (dans mon sens chercher une lettre est inutile, voire 2 selon ton domaine de recherche)


```

```

 tu slectionnes tous les champs de ta tables, et tu recherches dans chacun des champs que tu dsires contenant au moins le mot tapp par l'utilisateur


```
$sql = "SELECT * from TA_TABLE where  ";
```

    // le % avant/apres la variable siginifie que tu prendras toutes les lignes contenant au moins ces lettres "$result"


```

```

      // tu rcupres tes variables


```

```

      // et l tu fais ton traitement


```
// traitement traitement traitemant ******************** //
```

      // et un petit compteur pour compte le nombre de produits que tu as trouv avec les mots cls tapps au pralable  :;): 


```

```

    // et la ton traitement s'il n'y a aucun rsultat


```

```

  // et la ton traitement si le champs de recherche est vide


```

```

  // et la ton traitement si le champs de recherche ne contient qu'un seul caractre


```

```

  // En cas d'erreur (il faut toujous les traiter)


```

```


Donc a donne :


```

```

Voil... Evidemment c'est  appronfondir ... je te mets jsute sur la voie

En sprant que a aideras quelqu'un comme les posts de ce site m'ont dj beaucoup aids et qu'ils m'aident encore  :;):

----------


## pacmann

Salut !




> Bien sur tu peux mettre plusieurs AND, mais tu peux aussi mettre :
> 
> 
> ```
> 
> ```
> 
> ou ta liste de valeur correspond  tous les mots clefs de tes AND.
> @+


Je sais que c'est vieux et qu' l'poque vous tiez encore une trs jeune padawane... mais Mme Blain, LIKE, a correspondrait plutt  OR qu' AND ?

----------

