IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IGN API Géoportail Discussion :

Requête pour recherche inverse (ajax, kvp...) suite à un clic


Sujet :

IGN API Géoportail

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2014
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Requête pour recherche inverse (ajax, kvp...) suite à un clic
    Bonjour,

    Je viens de développer une appli WEB (avec AngularJs) afin de gérer des alertes de secours. Afin de la compléter je souhaiterai utiliser l'API IGN afin de localiser mes alertes.
    Le site que j'ai développé fonctionne sur un serveur local et ne sera jamais sur un serveur en ligne(http). Toute cette partie là fonctionne parfaitement.
    Je précise néanmoins que je ne suis pas un pro de la programmation et que je suis parfaitement novice dans les SIG...

    J'ai donc suivi les différents autos sur IGN et j'ai réussi à configurer et à ouvrir une carte dans une fenêtre avec mes préférences. En m'inspirant d'un code sur le site IGN j'ai réussi à obtenir par un clic les coordonnées d'un point. Mais...

    1/ J'ai constaté que si j'utilise un outil comme la "recherche par lieu" ou la "mesure d'altitude" puis que je reviens à la carte en quittant ces fonctions, la fonction click qui me donne mes coordonnées ne marche plus ? Je ne comprends pas pourquoi. Par contre si je n'utilise aucun outil, ma fonction fonctionne sans problème...

    2/ Je souhaiterai lorsque je clique (ou alors en tapant sur un raccourci clavier) sur un point de mon choix de la carte, récupérer les informations suivantes (dans la console par exemple) :
    - latitude
    - longitude
    - altitude
    - commune concernée
    - code postal de la commune concernée
    et éventuellement le nom du lieu le plus proche

    3/ Ai-je besoin d'un proxy car pour le moment je n'en ai pas et ma carte s'affiche sans problème. J'ai récupérer le proxy.php fourni sur le site de l'IGN mais je ne sais pas quoi mettre dans :
    $proxy_host= 'HOST';
    $proxy_port= 'PORT';
    L'adresse de mon site en local http://localhost:8888/app/

    Mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    /* The API key to use */
    var APIkey= "CLE API";
    
    */
    viewer= null;
    
    /* Function: initMap - Load the application. Called when all information have been loaded by <loadAPI>() */
    function initMap() {
       
        /***** Traduction *****/
        translate();
    
        
        
        /***** Options *****/
        var options= {
            mode:'normal',
    		territory:'FXX',
    		proxy:'assets/proxy.php?url=' // Configurer les 2 variables dans le fichier PHP...
        };
    
        viewer= new Geoportal.Viewer.Default('viewerDiv', OpenLayers.Util.extend(
            options,
            // variable contenant la configuration des clefs API remplie par <Geoportal.GeoRMHandler.getConfig>
            window.gGEOPORTALRIGHTSMANAGEMENT===undefined? {'apiKey':APIkey} : gGEOPORTALRIGHTSMANAGEMENT)
        );
        if (!viewer) {
            // En cas de problème...
            OpenLayers.Console.error(OpenLayers.i18n('new.instance.failed'));
            return;
        }
        
        /***** Layers *****/
        viewer.addGeoportalLayers(['GEOGRAPHICALGRIDSYSTEMS.MAPS','ORTHOIMAGERY.ORTHOPHOTOS'], {
            'GEOGRAPHICALGRIDSYSTEMS.MAPS': {visibility:true,   opacity:1},
            'ORTHOIMAGERY.ORTHOPHOTOS':     {visibility:false,  opacity:1}
        });
        
        //viewer.setLayersPanelVisibility(false);
        viewer.openLayersPanel(false);
        
    	/***** Centrage de la carte *****/
        viewer.getMap().setCenterAtLonLat(6.359381720692934,44.92211050248759,13);
        
        
        
        /***** Catalogue des couches *****/
        //viewer.getMap().addControl(new Geoportal.Control.LayerCatalog());
        
        
        
        /***** Récupération de la barre d'outils *****/
        var tbx= viewer.getMap().getControlsByClass("Geoportal.Control.ToolBox")[0]; 
        var panel= new Geoportal.Control.Panel({
            div:OpenLayers.Util.getElement(tbx.id+"_search") 
        });
     
        viewer.getMap().addControls([panel]);
        
        
        
        /***** Barre de mesures *****/
        var measurebar= new Geoportal.Control.MeasureToolbar({ 
            div: OpenLayers.Util.getElement(tbx.id+"_measure"), 
            displaySystem:(viewer.getMap().getProjection().getProjName()=="longlat"?"geographic":"metric"), 
            targetElement: OpenLayers.Util.getElement(tbx.id+"_meares"),
            elevationOptions: {
                active: true,
                targetElement: null
            },
            elevationPathOptions: {
                active: false
            },
        });
      
        viewer.getMap().addControl(measurebar); 
        // Désactivation des icônes de mesures non désirés
        viewer.getMap().getControlsByClass("Geoportal.Control.MeasureToolbar")[0].controls[2].deactivate;
        viewer.getMap().getControlsByClass("Geoportal.Control.MeasureToolbar")[0].controls[2].div.style.display="none";
        viewer.getMap().getControlsByClass("Geoportal.Control.MeasureToolbar")[0].controls[1].deactivate;
        viewer.getMap().getControlsByClass("Geoportal.Control.MeasureToolbar")[0].controls[1].div.style.display="none";
        
        
        
        /***** Recherches par lieu *****/
        var GeoNames= new Geoportal.Control.LocationUtilityService.GeoNames(
            new Geoportal.Layer.OpenLS.Core.LocationUtilityService("PositionOfInterest:OPENLS;Geocode", { 
                maximumResponses:100,
                formatOptions: {}
            }),{
                drawLocation:true,
                setZoom: function() {return 16}, // Réglage du niveau de zoom
                autoCompleteOptions: {},
            }
        );
        panel.addControls([GeoNames]);
        
        
        
        /***** Recherches par adresse *****/
        var Geocode= new Geoportal.Control.LocationUtilityService.Geocode(
            new Geoportal.Layer.OpenLS.Core.LocationUtilityService( "StreetAddress:OPENLS;Geocode", { 
                maximumResponses:100,
                formatOptions: {}
            }),{
                drawLocation:true,
                setZoom: Geoportal.Control.LocationUtilityService.GeoNames.setZoomForBDNyme,
                autoCompleteOptions: {}
            }
        );
        panel.addControls([Geocode]);
        
        /* Début de la gestion du clic */
        OpenLayers.Control.Click= OpenLayers.Class(OpenLayers.Control, {
            defaultHandlerOptions: {
                'single': true,
                'double': false,
                'pixelTolerance': 0,
                'stopSingle': false,
                'stopDouble': false
            },
    
            initialize: function(options) {
                OpenLayers.Control.prototype.initialize.apply(this,arguments);
                this.handlerOptions= OpenLayers.Util.extend({},this.defaultHandlerOptions);
                this.handler= new OpenLayers.Handler.Click(this, {'click': this.trigger}, this.handlerOptions);
            },
    
            trigger: function(e) {
                var lonlat= this.map.getLonLatFromViewPortPx(e.xy).transform(
                            this.map.getProjection(), OpenLayers.Projection.CRS84);
                alert(lonlat.lon + " N - " + lonlat.lat + " E");
                            
                var centerLonlat = this.map.getCenter().transform(this.map.getProjection(), OpenLayers.Projection.CRS84);
                console.log('Centre de la carte', centerLonlat.lon, centerLonlat.lat);
            }
        });
    
        // création et insertion du nouveau contrôleur
        var monClic= new OpenLayers.Control.Click({autoActivate:true});
        viewer.getMap().addControl(monClic);
        
        /* Fin de la gestion du clic */                
        
    }
    
    
    /* Function: loadAPI - Load the configuration related with the API keys. Called on "onload" event.
       Call <initMap>() function to load the interface. */
    
    function loadAPI() {
        // On attend que les classes soient chargées
        if (checkApiLoading('loadAPI();',['OpenLayers','Geoportal','Geoportal.Viewer','Geoportal.Viewer.Default'])===false) {
            return;
        }
        
        Geoportal.GeoRMHandler.getConfig([APIkey], null,null, {
            onContractsComplete: initMap
        });
    }
    
    /* Assignation de la fonction à appeler lors de la levée de l'évènement "onload" */
    window.onload= loadAPI;
    Je vous remercie.

    Rodolphe

  2. #2
    Membre éclairé Avatar de jrenard
    Homme Profil pro
    Webdesigner / développeur front-end
    Inscrit en
    Septembre 2013
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Webdesigner / développeur front-end
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2013
    Messages : 456
    Points : 894
    Points
    894
    Par défaut
    Bonjour,

    Pour la question 3 : vous n'avez besoin de proxy que si vous ajoutez des données depuis des services externes (WMS/WFS). Si ce n'est pas le cas, vous n'avez pas besoin de proxy. D'ailleurs dans votre cas le proxy n'est manifestement pas utilisé puisque pas configuré

    Je reviens rapidement vers vous pour les deux autres questions après étude de votre code.

    NB : par souci de sécurisation, je vous conseille de ne pas donner vos identifiants de clé en public, surtout si elles ne sont sécurisées qu'en referer localhost (n'importe qui pourrait alors les récupérer et les détourner). Je vous laisse éditer cette partie de code dans votre message
    Développeur Web - Agglo La Rochelle
    Anciennement pôle technique Géoportail - IGN
    Twitter : @dje_renard

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2014
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par jrenard Voir le message
    Bonjour,

    Pour la question 3 : vous n'avez besoin de proxy que si vous ajoutez des données depuis des services externes (WMS/WFS). Si ce n'est pas le cas, vous n'avez pas besoin de proxy. D'ailleurs dans votre cas le proxy n'est manifestement pas utilisé puisque pas configuré

    Je reviens rapidement vers vous pour les deux autres questions après étude de votre code.

    NB : par souci de sécurisation, je vous conseille de ne pas donner vos identifiants de clé en public, surtout si elles ne sont sécurisées qu'en referer localhost (n'importe qui pourrait alors les récupérer et les détourner). Je vous laisse éditer cette partie de code dans votre message
    Merci beaucoup pour votre début de réponse...
    Pour les clés je les ai effacé...

  4. #4
    Membre éclairé Avatar de jrenard
    Homme Profil pro
    Webdesigner / développeur front-end
    Inscrit en
    Septembre 2013
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Webdesigner / développeur front-end
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2013
    Messages : 456
    Points : 894
    Points
    894
    Par défaut
    Je reviens sur la question 2 :

    Je souhaiterai lorsque je clique (ou alors en tapant sur un raccourci clavier) sur un point de mon choix de la carte, récupérer les informations suivantes (dans la console par exemple) :
    - latitude
    - longitude
    - altitude
    - commune concernée
    - code postal de la commune concernée
    et éventuellement le nom du lieu le plus proche
    Latitude/longitude => Vous avez déjà compris comment faire pour les récupérer :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var lonlat= this.map.getLonLatFromViewPortPx(e.xy).transform(
    			this.map.getProjection(), OpenLayers.Projection.CRS84);
    console.log('Longitude : '+ lonlat.lon + ' N - Latitude : ' + lonlat.lat + ' E');

    Altitude => Il va falloir faire une requête vers le service d'altimétrie à partir des coordonnées lon/lat précédemment récupérées :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    var request = new Geoportal.Control.Measure.ElevationRequest({
    	url: 'http://wxs.ign.fr/'+"CLE API"+'/alti/rest/elevation.xml',
    	success: function(response) {
    		if (response && response.length>0) {
    			var alt = response[0].z.toString();
    			if (alt === '-99999.0') {
    				console.log('Altitude non disponible');
    			} else {
    				console.log('Altitude : ' + alt +' m');
    			}
    		}
    	},
    	failure: function(response) {
    		console.log('Altitude non disponible');
    	}
    });
    request.getElevation([lonlat]);

    En passant, mettre en place ce mécanisme vous permet de vous affranchir de l'ajout du bouton d'altimétrie dans la barre d'outils de mesure.

    Commune concernée et son code postal => Là c'est le moteur de géocodage inverse qu'il va falloir mettre en jeu : il permet de récupérer des lieux et leurs métadonnées à partir de coordonnées géographiques. Son fonctionnement via un bouton dédié est illustré sur les exemples http://api.ign.fr/tech-docs-js/examp...seGeocode.html et http://api.ign.fr/tech-docs-js/examp...de_extend.html, mais l'idée va être (comme pour la requête d'altimétrie) de s'affranchir de ce bouton et d'appeler directement la requête de géocodage inverse sur les coordonnées lon/lat, puis de récupérer les informations que l'on souhaite dans la réponse de la requête
    Développeur Web - Agglo La Rochelle
    Anciennement pôle technique Géoportail - IGN
    Twitter : @dje_renard

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2014
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bonjour et merci pour votre réponse rapide.

    Pour l'altitude c'est tout bon. La fonction marche comme je le souhaitais. Pour le reste je vais voir cela dans les jours à venir.

    Concernant le le problème du click dont je parlais en 1/, j'ai résolu le problème en utilisant le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    viewer.getMap().events.register("click", viewer.getMap(), function(e) {
    ...
    };
    Je vous tiens au courant pour la recherche inverse.
    Cordialement

    Rodolphe

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2014
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Rebonjour,

    Je viens de me pencher sur la requête inverse, mais je ne trouve pas la bonne requête...
    Je suppose qu'il faut aller voir du côté de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var = new Geoportal.OLS.LUS.ReverseGeocodeRequest...
    Mais je ne vois pas où l'on insère l'url pour la recherche... Il s'agit bien de celle-ci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    http://wxs.ign.fr/APIKEY/geoportail/ols?

    Auriez vous un exemple concret ?

    Merci beaucoup

    Rodolphe

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2014
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Toujours en train de chercher...

    J'ai réussi à faire une requête ajax via un proxy pour une recherche normale et ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    var resultDiv='briancon';    		
            var body='<xls:XLS xmlns:xls="http://www.opengis.net/xls" version="1.2"><xls:RequestHeader sessionID=""/><xls:Request methodName="GeocodeRequest" version="1.2" requestID="" maximumResponses="100"><xls:GeocodeRequest><xls:Address countryCode="StreetAddress"><xls:freeFormAddress>'+resultDiv+'</xls:freeFormAddress></xls:Address></xls:GeocodeRequest></xls:Request></xls:XLS>';	  
            var xmlHttpRequest= OpenLayers.Request.POST({
                'data'   :body,
                'headers':{'Content-Type': 'text/xml'},
                'url':"http://wxs.ign.fr/skhfok2smgcy3pd89y4roz13/geoportail/ols?",
                'scopeOn':{},
                callback:gnSuccess
            });
    
            function gnSuccess(xmlHttpRequest){
                var format=new Geoportal.Format.XLS();
                var xml=xmlHttpRequest.responseXML;
                var res=format.read(xml);
                console.log(res);
                var geocodedAddresses=res._body[0]._responseParameters.geocodeResponses[0].geocodedAddresses;
                var geocodedAddresses=res._body[0]._responseParameters.geocodeResponses[0].geocodedAddresses;
                for (var i=0;i<geocodedAddresses.length;i++){
                    console.log('Coordonnées: X: '+geocodedAddresses[i].lonlat.x+' Y: '+geocodedAddresses[i].lonlat.y);
                }	
            }
    par contre je n'arrive pas à faire une requête inverse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    var body='<xls:XLS xmlns="http://www.opengis.net/xls" version="1.2"><xls:RequestHeader sessionID=""/><xls:Request methodName="ReverseGeocodeRequest" version="1.2" requestID="" maximumResponses="10"><xls:ReverseGeocodeRequest><xls:Position><xls:gml:Point xmlns:gml="http://www.opengis.net/gml><xls:gml:pos>48.8608325 2.3452743</xls:gml:pos></xls:gml:Point></xls:Position><xls:ReverseGeocodePreference>PositionOfInterest</ReverseGeocodePreference></ReverseGeocodeRequest></xls:Request></xls:XLS>';	  
            var xmlHttpRequest= OpenLayers.Request.POST({
                'data'   :body,
                'headers':{'Content-Type': 'text/xml'},
                'url':'http://wxs.ign.fr/' + APIkey + '/geoportail/ols?',
                'scopeOn':{},
                callback:gnSuccess
            });
    
            function gnSuccess(xmlHttpRequest){
                var format=new Geoportal.Format.XLS();
                var xml=xmlHttpRequest.responseXML;
                var res=format.read(xml);
                console.log('Success',res);	
            }
    Y a t il moyen d'éviter ajax et par conséquent le proxy ?

    J'ai vu les requêtes GET en KVP qui apparemment permettent de se passer d'un proxy, mais je comprends pas la syntaxe...
    Pouvez vous de donner un exemple concret avec sortie en json
    http://wxs.ign.fr/APIKEY/geoportail/ols?... (je ne comprends pas ce qu'il fait mettre à la place des points...

    Merci beaucoup

    Rodolphe

  8. #8
    Membre confirmé Avatar de lboulanger
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2014
    Messages : 262
    Points : 529
    Points
    529
    Par défaut
    Bonjour,

    L'URL que vous utilisez est bien la bonne. Vous pouvez ensuite passer le corps de votre requête (xml) dans le paramètre xls.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://wxs.ign.fr/VOTRECLE/geoportail/ols?xls=<XLS....>
    Pour plus d'informations, vous pouvez vous référer à la documentation suivante, et plus particulièrement ici pour des informations sur les requêtes GET KVP.

    Il est possible d'éviter AJAX, en utilisant le protocole JSONP. Pour cela, vous pouvez utiliser les paramètres output=json (qui permet d'imbriquer la réponse XML dans une syntaxe JSON) et callback=votreFonction (intégration de la réponse encapsulée JSON comme paramètre de votreFonction), à insérer à la suite du paramètre xls dans votre requête.

    N'hésitez pas à étudier les exemples suivants pour vous inspirer : http://api.ign.fr/tech-docs-js/examp...seGeocode.html et http://api.ign.fr/tech-docs-js/examp...de_extend.html, et notamment les requêtes envoyées (onglet réseau de Firebug par exemple).

    Laurane

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2014
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bonjour et un grand merci à tous les intervenants pour leur patience et les exemples fournis...

    J'ai finalement réussi ce que je voulais faire grâce à vos conseils (avec et sans proxy).
    Je marque la discussion "résolue".
    Cordialement.

    Rodolphe

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. requête pour recherche de mots clés
    Par uglypanda dans le forum Requêtes
    Réponses: 1
    Dernier message: 07/02/2013, 09h31
  2. [MySQL] Requête pour recherche de doublons qui ne fonctionne plus : HTTP404
    Par HAbroc dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 24/06/2012, 11h13
  3. [AC-2007] Relation entre deux requêtes pour rechercher une valeur de champs commune
    Par Debutant10 dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 01/11/2011, 14h25
  4. Requête pour rechercher des doublons partiels
    Par jubourbon dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/06/2011, 11h22
  5. [SQL] Comment feriez-vous cette requête pour une recherche ?
    Par Core8 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/02/2008, 11h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo