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 :

Encodage en JSON [PostgreSQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 134
    Points : 78
    Points
    78
    Par défaut Encodage en JSON
    Hello,

    Je me penche depuis quelques temps sur la programmation d'APIL. J'aimerais redescendre une liste de communes, situées dans une table d'une bdd PG.

    C'est un code que "Nouvelle Techno" proposait dans son tutoriel Youtube, que j'ai adapté selon mes besoins.

    Le problème est donc le suivant : j'ai un écran blanc et une réponse 200 alors que ma table est remplie.
    Le problème se situe donc au niveau de la boucle "while" et ce qu'il y a dedans.

    Pour infos complémentaires : les variables dans le while sont celles qui ont été déclarées dans l'entête de la classe Commune.

    Est ce que qqun saurait dire pourquoi ?

    Merci pour vos retours

    Sylvain

    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
    <?php
    // Headers requis
    header("Access-Control-Allow-Origin: *");
    header("Content-Type: application/json; charset=UTF-8");
    header("Access-Control-Allow-Methods: POST");
    header("Access-Control-Max-Age: 3600");
    header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
     
    // On vérifie la méthode
    if($_SERVER['REQUEST_METHOD'] == 'GET'){
        // On inclut les fichiers de configuration et d'accès aux données
        include_once '../config/database.php';
        include_once '../models/Commune.php';
     
        // On instancie la base de données
        $database = new Database();
        $db = $database->getConnection();
     
        // On instancie les produits
        $commune = new Commune($db);
     
        // On récupère les informations envoyées
        $stmt = $commune->lire();
     
        // On vérifie si on a au moins 1 produit
      if($stmt->rowCount() > 0){
          // On initialise un tableau associatif
          $tableauCommune = [];
          $tableauCommune['commune'] = [];
     
          // On parcourt les produits
          while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
              extract($row);
     
              $coms = [
                  "id" => $id,
                  "insee" => $insee,
                  "nom" => $nom,
                  "population" => $population
              ];
     
              $tableauCommune['commune'][] = $coms;
          }
     
          // On envoie le code réponse 200 OK
          http_response_code(200);
     
          // On encode en json et on envoie
          echo json_encode($tableauCommune);
      }
    }
    else{
        // On gère l'erreur
        http_response_code(405);
        echo json_encode(["message" => "La méthode n'est pas autorisée"]);
    }

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 847
    Points
    4 847
    Par défaut
    Bonjour,

    En MVC la fonction extract() est souvent utilisée UNE FOIS pour passer des variables du contrôleur à la vue.

    Avez-vous essayer de la supprimer et remplacer les valeurs par $row["id"], $row["insee"]... ?

    Sinon mettez un var_dump($tableauCommune['commune']) à la ligne 44 pour voir le contenu.

  3. #3
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 134
    Points : 78
    Points
    78
    Par défaut
    J'ai regardé plus précisément, le problème semble provenir de la classe Commune(). Je l'ai entièrement réécrite, et cette fois-ci ça marche.... Pas de changements en apparence, peut-être un espace malheureux qque part ?

    Bref....

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

Discussions similaires

  1. [Encodage] Encodage avec json
    Par chuckichucki dans le forum Langage
    Réponses: 1
    Dernier message: 22/10/2013, 15h56
  2. Problème d'encodage fichier JSON avec WCF REST Service
    Par Spikuria dans le forum Services Web
    Réponses: 0
    Dernier message: 09/03/2012, 10h24
  3. les accent entre PHP et JQuery et encodage json
    Par nicko_73 dans le forum jQuery
    Réponses: 1
    Dernier message: 22/12/2009, 15h43
  4. jQuery + JSON et encodage
    Par Spir dans le forum jQuery
    Réponses: 6
    Dernier message: 15/12/2008, 16h15
  5. [AJAX] Encodage avec JSON
    Par Norin dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/07/2008, 22h02

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