Une chaine de caractère par un mot

Breathe
Invité n'ayant pas de compte PHPfrance

26 mars 2012, 12:49

Bonjour à tous,

Actuellement je suis en train de créer une barre de recherche, celle-ci va ajouter des conditions à ma requête SQL pour qu'elle ne me retourne qu'un contenu précis. Or J'ai un champs varchar2 qui contient des phrases comme : "Maison de retraite des palmiers" et je voudrais que lorsque nous écrivions : palmier, cette ligne sorte quand même sans que nous devions taper : Maison de retraite des palmiers, en toutes lettres. En clair que la condition ne porte pas sur le champs exact mais sur une partie. Est ce possible ?

En espérant avoir été clair dans mes propos :?

Merci par avance

PS : Ma condition est comme suit : and nom_etablissement LIKE "$_POST["ETABLISSEMENT"]"

ViPHP
xTG
ViPHP | 7331 Messages

26 mars 2012, 13:16

A voir ton morceau de requête je doute déjà que la variable soit interprétée et enfin il faut utiliser l'opérateur joker pour étendre la recherche (sinon c'est la même chose qu'un égal).
$sql = "SELECT ... FROM ... WHERE ... AND nomEtablissement LIKE '%" . $_POST['ETABLISSEMENT'] . "%' AND ...";
A noter aussi qu'il ne faut pas injecter ainsi des variables non protégées.
Regardes en fonction de ton jeu de fonction :
- mysql_xxx => mysql_real_escape_string()
- mysqli_xxx (ou objet) => mysqli_real_escape_string() OU requête préparée (mais déconseillée dans ton cas)
- PDO => quote() OU requête préparée (mais déconseillée dans ton cas)
Et d'autres si tu utilises autre chose, mais ça existe. :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

26 mars 2012, 13:18

Salut,

Utilise les jokers (%)
Par exemple select truc from table where truc like %machin%;


Raaaa xTG trop rapide :/
Mais bon la vue le varchar2 je dirais qu'il utilise oracle ;)

@+
Il en faut peu pour être heureux ......

Breathe
Invité n'ayant pas de compte PHPfrance

26 mars 2012, 15:08

Merci beaucoup à tous les deux de m'avoir répondu aussi vite et efficacement, votre solution marche à la perfection ! Merci merci merci =D>