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

PHP & Base de données Discussion :

Récupération des données depuis une base de donnée


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2019
    Messages : 28
    Par défaut Récupération des données depuis une base de donnée
    Bonjour,

    Je suis étudiant, et dans le cadre de projet je dois développer une carte avec 2 types de marqueurs pour différencier 2 "cas" (positif et négatif)

    Après de longue heures de recherche j'ai réussi à obtenir ma carte avec une conversion de l'adresse de la base de donnée en coordonnées gps (logi, lagi).

    Il me reste la dernière étape, réussir à afficher tous mes marqueurs sur la carte. J'arrive à en afficher un (la première ligne du résultat de ma requête). Il faudrait donc faire une boucle, j'avais pensé à stocker le résultat de ma requête dans un tableau, puis l'extraire au moment de var positif, ou var negatif comme je vais avoir après une autre requête mais ça reste le même principe. Donc si quelqu'un peut me donner des idées, j'ai passé pas mal de temps en vain, je n'ai jamais réussi.

    Merci d'avance,

    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
    <?php
     
     include ('./../script/connexion.php');
    			$requete = "select adresse_cheptel, code_postal, commune_cheptel, nom_eleveur, count(*) 
                from qualyse1_cheptel c, qualyse1_prelevement p 
                where c.id_cheptel=p.id_cheptel 
                and resultat='neg' 
                group by adresse_cheptel, code_postal, commune_cheptel, nom_eleveur
                LIMIT 1
                ";
    echo $requete;
    	        $result = $connexion -> query($requete);
    	        $res = $result -> fetch();
     
    echo $res['adresse_cheptel'];
     
     
    echo $res['code_postal'];
     
    echo $res['commune_cheptel'];
     
    $nom=$res['nom_eleveur'];
    echo $nom;
     
    $data = array(
      'postalcode' => $res['code_postal'],
      'city'       => $res['commune_cheptel'],
      'country'    => 'france',
      'format'     => 'json',
    );
    $url = 'https://nominatim.openstreetmap.org/?' . http_build_query($data);
    echo $url;
     
     
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mettre ici un user-agent adéquat');
    $geopos = curl_exec($ch);
    curl_close($ch);
     
    $resp = json_decode($geopos, true);
     
     
    // get the important data
    echo $lati = $resp[0]['lat'];
     
    echo $longi = $resp[0]['lon'];
     
     
     
     
    ?>
     
    <!DOCTYPE html>
    <html>
    	<head>
            <meta charset="utf-8">
            <!-- Nous chargeons les fichiers CDN de Leaflet. Le CSS AVANT le JS -->
            <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ=="
                crossorigin="" />
            <script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet.js" integrity="sha512-/Nsx9X4HebavoBvEBuyp3I7od5tA0UzAxs+j83KgC8PU0kgB4XiK4Lfe4y4cgBtaRJQEIFCW+oC506aPT2L1zw=="
                crossorigin=""></script>
    		<script type="text/javascript">
     
            // Nous initialisons une liste de marqueurs, les cheptels positifs
    var positif = {
    	<?php echo '"'.$nom.'"' ?> : { "lat": <?php echo $lati ?>, "lon": <?php echo $longi ?> },
    	"Brest": { "lat": 48.383, "lon": -4.500 },
    	"Quimper": { "lat": 48.000, "lon": -4.100 },
    	"Bayonne": { "lat": 43.500, "lon": -1.467 }
    };
     
    // Nous initialisons une liste de marqueurs, les cheptels négatifs
     
    var negatif = {
    	<?php echo '"'.$nom.'"' ?> : { "lat": <?php echo $lati ?>, "lon": <?php echo $longi ?> },
    	"Brest": { "lat": 49.383, "lon": -4.500 },
    	"Quimper": { "lat": 46.000, "lon": -4.100 },
    	"Bayonne": { "lat": 44.500, "lon": -1.467 }
    };
    			// On initialise la latitude et la longitude de Niort (centre de la carte)
    			var lat = 46.323780;
    			var lon = -0.457087;
    			var macarte = null;
    			// Fonction d'initialisation de la carte
    			function initMap() {
    				// Créer l'objet "macarte" et l'insèrer dans l'élément HTML qui a l'ID "map"
                    macarte = L.map('map').setView([lat, lon], 11);
                    // Leaflet ne récupère pas les cartes (tiles) sur un serveur par défaut. Nous devons lui préciser où nous souhaitons les récupérer. Ici, openstreetmap.fr
                    L.tileLayer('https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', {
                        // Il est toujours bien de laisser le lien vers la source des données
                        attribution: 'données © <a href="//osm.org/copyright">OpenStreetMap</a>/ODbL - rendu <a href="//openstreetmap.fr">OSM France</a>',
                        minZoom: 1,
                        maxZoom: 20
                    }).addTo(macarte);
     
    // Nous parcourons la liste des cheptels positifs
    	for (ville in positif) {
        // Nous définissons l'icône à utiliser pour le marqueur, sa taille affichée (iconSize), sa position (iconAnchor) et le décalage de son ancrage (popupAnchor)
    		var myIconpos = L.icon({
    			iconUrl: "./marq.png",
    			iconSize: [50, 50],
    			iconAnchor: [25, 50],
    			popupAnchor: [-3, -76],
    		});
    		var marker = L.marker([positif[ville].lat, positif[ville].lon], { icon: myIconpos }).addTo(macarte);
            // Nous ajoutons la popup. A noter que son contenu (ici la variable ville) peut être du HTML
    	marker.bindPopup(ville);
    	}    
     
     
    // Nous parcourons la liste des cheptels négatifs
        for (ville in negatif) {
        // Nous définissons l'icône à utiliser pour le marqueur, sa taille affichée (iconSize), sa position (iconAnchor) et le décalage de son ancrage (popupAnchor)
    		var myIconneg = L.icon({
    			iconUrl: "./marqeur.png",
    			iconSize: [50, 50],
    			iconAnchor: [25, 50],
    			popupAnchor: [-3, -76],
    		});
    		var marker = L.marker([negatif[ville].lat, negatif[ville].lon], { icon: myIconneg }).addTo(macarte);
            // Nous ajoutons la popup. A noter que son contenu (ici la variable ville) peut être du HTML
    	marker.bindPopup(ville);
    	}      
                }
    			window.onload = function(){
    				// Fonction d'initialisation qui s'exécute lorsque le DOM est chargé
    				initMap(); 
    			};
    		</script>
    		<style type="text/css">
    			#map{ /* la carte DOIT avoir une hauteur sinon elle n'apparaît pas */
    				height:400px;
    			}
    		</style>
    		<title>Carte</title>
    	</head>
    	<body>
    		<div id="map">
    			<!-- Ici s'affichera la carte -->
    		</div>
    	</body>
    </html>

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 718
    Par défaut
    Bonjour,

    Tu as deux solutions:
    Soit tu récupère tes données avec fetchAll() qui te donnera un tableau de toutes tes données et tu les traites à partir du tableau, soit tu fais une boucle comme ceci:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while ( $data = $result->fetch() )
    {
    	echo $data['xxx'];
    }
    Un petit conseil regarde la doc PDO et ses exemples.

Discussions similaires

  1. [AC-2003] Charger des requêtes depuis une base de données Access vers QGIS
    Par Tiber 1 dans le forum Access
    Réponses: 0
    Dernier message: 05/07/2017, 16h16
  2. generer des evenements depuis une base de données
    Par abysr dans le forum Persistance des données
    Réponses: 1
    Dernier message: 07/09/2016, 19h26
  3. Réponses: 5
    Dernier message: 26/03/2016, 17h36
  4. [XL-2010] sélection des données depuis une base de données depuis une autre feuille
    Par Learning everyday dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/11/2014, 10h14
  5. Réponses: 1
    Dernier message: 03/02/2010, 13h38

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