Résultat json

Résolu
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -  
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Pouvez-vous m'aider a corriger ce code svp ?
try{$stat = $pdo->query("SELECT * FROM table LIMIT 10");
    
$results = array();
    
while($data = $stat->fetch(PDO::FETCH_ASSOC)){
        
$results[] = array($data["sous_menu_tag"]);

}}catch(PDOException $e){echo "<div class='alert alert-danger'>".$e->getMessage()."</div>";}

echo json_encode($results);


J'ai ce résultat
[["A"],["B"],["C"],["D"],["E"],["F"],["G"],["H"],["I"],["J"]]

Au lieu de celui-ci
["A","B","C","D","E","F","G","H","I","J"]

Merci d'avance

4 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour,

    Il te suffit de relire ton code pour voir que tu as un array en trop
    $results[] = array($data["sous_menu_tag"]);
    

    A changer par
    $results[] = $data["sous_menu_tag"];
    


    Au passage, histoire de rendre ton code plus lisible ( pour toi.. mais aussi pour nous...) il faudrait que tu t'appliques sur l'indentation de ton code...

    Histoire de te montrer comment ton code devrait se présenter "proprement" voici
    $results = array();
    
    try {
        $stat = $pdo->query("SELECT * FROM table LIMIT 10");
       
        while($data = $stat->fetch(PDO::FETCH_ASSOC)){ 
          $results[] = $data["sous_menu_tag"];
        }
    } catch(PDOException $e){
      echo "<div class='alert alert-danger'>".$e->getMessage()."</div>";
    }
    
    echo json_encode($results);
    

    ... il me semblait te l'avoir déjà dit...

    1
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, si j'étais toi, j'examinerais la ligne 7. la comprends-tu?

    n'hésite pas à rajouter des
    echo();
    1
  3. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
     
    Oui merci c'est réglé.
    Y a t-il moyen svp de remplacer les doubles quotte afin d'avoir ceci ?
    ['A','B'....]?
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Je ne connais pas d'option pour ça pour que ça se fasse automatiquement .. et franchement.. je n'en verrai pas l'intérêt ...
      Pourquoi veux tu changer ??

      Après, tu peux toujours, dans ta chaine json faire un string replace si vraiment tu veux changer... mais j'insiste.. pourquoi faire.. ?
      0
      1. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Pace que avec les doubles quotte j'ai cette erreur :
        Uncaught SyntaxError: Unexpected end of JSON input

        Alors que sans, je le l'ai pas.
        J'ai essayé ceci
        ["A","B","C","D","E","F","G","H","I","J"]
        et j'ai cette erreur, tandis qu'avec ceci, mon code fonctionne :
        ['A','B','C','D','E','F','G','H','I','J']
        .
        0
  4. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
     
    Merci a tous les deux :
    echo str_replace('"', "'",json_encode($results));


    Problème résolu.
    0