Partage
  • Partager sur Facebook
  • Partager sur Twitter

Création Fichier json

    18 septembre 2017 à 17:43:24

    Bonjour,

    j'arrive à créer un fichier json avec le mot "test" mais je voudrais le remplir avec le résultat de ma requête sql mais j'ai beau tout essayer je bloque voici mon code:

    <?php
     
    header('Content-type:application/json; charset=utf-8');
     
    $host = "localhost";
        $username = "root";
        $password = "";  
        $database = "voirie";
         
        //Créer la connexion avec la base de donnée //
        $connection = new mysqli($host, $username, $password, $database);
     
     
        // Vérification de la connexion //
        if ($connection->connect_error) {
            die("Erreur de connexion ( " . $connection->connect_errno . ")"
                    .$connection->connect_error);
        }
     
        // Ajout des accents à la française //
        $connection->set_charset("utf8");
      
    
    
        // On lance une requête //
        $requete = "SELECT
              voirie_id, voirie_type, voirie_lat,voirie_lon 
    
            FROM
              incident";
     
        $resultat = $connection->query($requete);
     
        $rows = array();
        while($row = mysqli_fetch_assoc($resultat)){
            $rows[] = $row;
        }
     
         
     echo json_encode($rows);
    
       // Nom du fichier à créer
    $nom_du_fichier = 'marker.json';
    
    // Ouverture du fichier
    $fichier = fopen($nom_du_fichier, 'w+');
    
    // Ecriture dans le fichier
    fwrite($fichier, 'test');
    
    // Fermeture du fichier
    fclose($fichier); 
    
        
     
    ?>

    Je vous remercie

    • Partager sur Facebook
    • Partager sur Twitter
      18 septembre 2017 à 17:46:09

      Salut,

      Faut retirer le L40: echo json_encode($rows), et mettre json_encode($rows) (sans "echo" bien sûr) à la place de 'test'. cette manip ne concerne que l'écriture du JSON dans le fichier. Tu pouvais utiliser aussi file_put_contents

      PS: utilise soit la version procédurale de MYSQLI ou objet, mais ne mélange pas les 2

      -
      Edité par WillyKouassi 18 septembre 2017 à 17:57:09

      • Partager sur Facebook
      • Partager sur Twitter
      le bienfait n'est jamais perdu
        19 septembre 2017 à 8:23:17

        merci

        Bonjour,

        J'en profite pour demander le forme du fichier json actuellement le résultat me donne ce fichier : 

        [{"voirie_id":"85","voirie_type":"autre","voirie_lat":"44.063277","voirie_lon":"-1.2258499999999999"},{"voirie_id":"87","voirie_type":"autre","voirie_lat":"0","voirie_lon":"0"}]

        est-il possible d'obtenir la structure du fichier comme suit?:

        {

        "type": "FeatureCollection",

        "features": [

        {"voirie_id": "85","voirie_type":"autre", "type": "Point", "coordinates": [ "-1.2258499999999999", "44.063277" ] } 

        ]

        }

        -
        Edité par yole9 19 septembre 2017 à 10:25:30

        • Partager sur Facebook
        • Partager sur Twitter
          19 septembre 2017 à 11:04:20

          Salut,

          avec l'option JSON_PRETTY_PRINT, json_encode($rows, JSON_PRETTY_PRINT)

          • Partager sur Facebook
          • Partager sur Twitter
          le bienfait n'est jamais perdu
            19 septembre 2017 à 11:25:15

            JSON_PRETTY_PRINT me range les données mais je veux rajouter "features": devant les données et surtout "coordinates": [ "-1.2258499999999999", "44.063277" ] pour utiliser les coordonnées
            • Partager sur Facebook
            • Partager sur Twitter
              19 septembre 2017 à 13:15:34

              Le type: 'Point' c'est le même pour toutes les données ?

              • Partager sur Facebook
              • Partager sur Twitter
              le bienfait n'est jamais perdu
                19 septembre 2017 à 13:20:01

                oui

                comment mettre marker = juste avant le contenu json je suis obligé de l'écrire sinon le reste fonctionne

                -
                Edité par yole9 19 septembre 2017 à 16:36:03

                • Partager sur Facebook
                • Partager sur Twitter
                  19 septembre 2017 à 20:32:09

                  $rows = [
                      'type' => 'FeatureCollection',
                      'features' => []
                  ];
                  
                  while ($data = mysqli_fetch_assoc($resultat)) {
                      $content = [
                          'voirie_id' => $data['voirie_id'],
                          'voirie_type' => $data['voirie_type'],
                          'type' => 'Point',
                          'coordinates' => [$row['voirie_lat'], $row['voirie_long']]
                      ];
                     
                      array_push(
                          $rows['features'],
                          $content
                      );
                  }
                  
                  
                  file_put_contents('marker.json', json_encode($rows, JSON_PRETTY_PRINT));
                  • Partager sur Facebook
                  • Partager sur Twitter
                  le bienfait n'est jamais perdu

                  Création Fichier json

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown