Si champ contient chaine

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Si champ contient chaine

Re: Si champ contient chaine

par cragoroth » 31 janv. 2012, 11:33

Bonjour,

Merci pour le code pour ma part j'ai utilisé ceci :

Code : Tout sélectionner

$result = mysql_query( 'SELECT id_offre_emploi, intitule_poste_offre_emploi , date_publi_offre_emploi , date_debut_poste_offre_emploi, agence FROM offreemploi WHERE intitule_poste_offre_emploi LIKE \'[b]%' . safe( $_GET['q'] ) . '%[/b]\' LIMIT 0,20' );

Re: Si champ contient chaine

par PierrePaulJacques » 30 avr. 2010, 16:49

Merci macgawel de ta réponse.

J'ai utilisé la solution 2, et cela fonctionne ! :D

Avec la solution "Tu n'as pas la main".

Encore Merci :)

Pierre

Re: Si champ contient chaine

par macgawel » 30 avr. 2010, 16:40

C'est normal :
D'un point de vue SQL, la virgule n'est rien qu'un caractère comme les autres... Du coup un LIKE va chercher la chaine de caractère. Qu'elle soit entourée par des virgules ou pas, ça ne fait aucune différence.

Deux solutions :
1. Le plus probable : tes données séparées par des virgules correspondent à des données distinctes => rajouter autant de champs qu'il y a de données.

2. Sinon, il va falloir ruser.
- Tu as la main sur la façon de remplir ta table : au lieu de "1,25,16,45,31" tu y mets ",1,25,16,45,31,".
Il suffit ensuite de chercher ,1,
- Tu n'as pas la main : il faut monter une requête qui prendra en compte les trois cas :
1 est au début (LIKE '1,%')
1 est à la fin (LIKE '%,1')
1 est au milieu (LIKE '%,1,%')

Si champ contient chaine

par PierrePaulJacques » 30 avr. 2010, 16:27

Bonjour à vous tous.

J'ai un problème à vous exposer...

Comment faire pour savoir qu'un champ d'une table contient une chaine de caractère ?

J'ai un champ qui contient : "1,25,16,45,31" (Ex.)
Je souhaiterai savoir si le champ contient "1"

Je sais il y a " :
Where champ LIKE '%truc%'
Mais le soucis c'est qu'il prend en compte aussi le "16" et le "31" ...

Avez vous une idée ... !?
Merci
Pierre.