Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Tue 18 May 2010 10:23

valentin37
Participant occasionnel
Date d'inscription: 20 Apr 2009
Messages: 29

Requête sur une chaine de caractères

bonjour,

je suis actuellement bloqué au moment d'effectuer un filtre sur une class en MapScript

je dispose d'une BDD sous PostGis. Je souhaite sélectionner des données dans un champs de type "character varying(15)" où je peux trouver des valeurs simples comme "A" "B" ...... "U"    ou plus complexes  comme "A-B-D", "C-D".

or je souhaite sélectionner tout les champs avec la même valeur comme "A" + "A-B" + "A-J-L"  où "A" est en commun

bien sur je peux le taper en dur :

$class->expression = "('[nom_champ]' = 'A' OR '[nom_champ]' = 'A-B-D' OR '[nom_champ]' = 'A-D')";


et cela fonctionne mais je souhaiterai aller plus vite parce qu'il y'a un grand nombre de combinaisons possibles

une expression du genre :
$class -> expression = "('[nom_variablel]' like '%A%')";

ou alors

$class -> expression = "('[nom_variable]' = '/~A/')";

j'ai évidement testé ces deux expression...aucun résultats.... pouvez m'aider svp?

Hors ligne

 

#2 Tue 18 May 2010 10:45

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1537

Re: Requête sur une chaine de caractères

valentin37 a écrit:

bonjour,

je suis actuellement bloqué au moment d'effectuer un filtre sur une class en MapScript

je dispose d'une BDD sous PostGis. Je souhaite sélectionner des données dans un champs de type "character varying(15)" où je peux trouver des valeurs simples comme "A" "B" ...... "U"    ou plus complexes  comme "A-B-D", "C-D".

or je souhaite sélectionner tout les champs avec la même valeur comme "A" + "A-B" + "A-J-L"  où "A" est en commun

bien sur je peux le taper en dur :

$class->expression = "('[nom_champ]' = 'A' OR '[nom_champ]' = 'A-B-D' OR '[nom_champ]' = 'A-D')";


et cela fonctionne mais je souhaiterai aller plus vite parce qu'il y'a un grand nombre de combinaisons possibles

une expression du genre :
$class -> expression = "('[nom_variablel]' like '%A%')";

ou alors

$class -> expression = "('[nom_variable]' = '/~A/')";

j'ai évidement testé ces deux expression...aucun résultats.... pouvez m'aider svp?


Bonjour,

je pense que les expressions regulieres seront tes amies:
http://mapserver.org/mapfile/expressions.html

(pas capable, cependant, de te donner celle qui va bien dans ton cas, mais le web fourmille de tutos là-dessus smile )

Nicolas Ribot

Hors ligne

 

#3 Tue 18 May 2010 11:31

valentin37
Participant occasionnel
Date d'inscription: 20 Apr 2009
Messages: 29

Re: Requête sur une chaine de caractères

merci beaucoup,
je me relance dans mes recherches
bonne journée

Hors ligne

 

Pied de page des forums

Powered by FluxBB