Résultat json

Résolu/Fermé
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 24 oct. 2020 à 21:44
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 24 oct. 2020 à 22:08
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

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
24 oct. 2020 à 21:49
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
yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
Modifié le 24 oct. 2020 à 21:50
bonjour, si j'étais toi, j'examinerais la ligne 7. la comprends-tu?

n'hésite pas à rajouter des
echo();
1
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
24 oct. 2020 à 21:53
Oui merci c'est réglé.
Y a t-il moyen svp de remplacer les doubles quotte afin d'avoir ceci ?
['A','B'....]?
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
24 oct. 2020 à 21:58
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
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
24 oct. 2020 à 22:02
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
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
24 oct. 2020 à 22:08
Merci a tous les deux :
echo str_replace('"', "'",json_encode($results));


Problème résolu.
0