Résultat json [Résolu]

Signaler
Messages postés
1000
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
24 octobre 2020
-
Messages postés
1000
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
24 octobre 2020
-
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

Messages postés
30043
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 novembre 2020
2 943
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...


Messages postés
12966
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 novembre 2020
723
bonjour, si j'étais toi, j'examinerais la ligne 7. la comprends-tu?

n'hésite pas à rajouter des
echo();
Messages postés
1000
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
24 octobre 2020
15
Oui merci c'est réglé.
Y a t-il moyen svp de remplacer les doubles quotte afin d'avoir ceci ?
['A','B'....]?
Messages postés
30043
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 novembre 2020
2 943
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.. ?
Messages postés
1000
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
24 octobre 2020
15 >
Messages postés
30043
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 novembre 2020

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']
.
Messages postés
1000
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
24 octobre 2020
15
Merci a tous les deux :
echo str_replace('"', "'",json_encode($results));


Problème résolu.