[MySQL] Champs Json, ordre non gardé

Champs Json, ordre non gardé [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 25-06-2019 à 10:56:56    

Bonjour,
 
Je découvre l'utilisation des champs de type Json dans MySQL et j'en ai l'utilité pour une fonctionnalité de mon site.
 
Je récupère des données dans un tableau, je fais un json_encode($montableau), puis j'enregistre ça dans ma base, le problème est que l'ordre des enregistrements de mon tableau n'est pas respecté dans ce qui est enregistré dans ma base.
Cet ordre est toujours présent après le json_encode(), le changement se fait donc après, lors de l'enregistrement et je ne parviens pas à trouver de solution.
 
Bref, est-il possible de garder l'ordre de mon tableau dans l'enregistrement qui en est fait sur MySQL?
 
Merci!

Reply

Marsh Posté le 25-06-2019 à 10:56:56   

Reply

Marsh Posté le 25-06-2019 à 11:09:42    

Dans la norme JSON, les couple clef valeur d'un objet n'ont pas d'ordre...
https://stackoverflow.com/questions [...] -preserved
Si tu as besoin de préserver l'ordre il te faut plutôt une liste ou avoir une clef valeur "tri" dans ton objet et l'utiliser pour réordonner tes objets.


---------------
D3
Reply

Marsh Posté le 25-06-2019 à 11:21:47    

Ok merci.
 
Bon, j'ai fait quelques autres tests et il se trouve qu'en mettant un champ de type "text" au lieu de Json, j'ai exactement les mêmes possibilités de requête (ce qui m'intéresse dans ce type de champ) tout en gardant l'ordre sorti par json_encode…
 
Je vais creuser du côté que tu donnes tout de même, merci!

Reply

Marsh Posté le 25-06-2019 à 12:16:18    

Oui tant que tu restes dans le même langage, tu risques moins d'avoir ce genre de problème mais attention, comme ce n'est pas dans la norme, ça reste incertain, d'une version à l'autre de PHP, par exemple, le résultat ne sera pas forcément garantis...
De plus à chaque "transcodage" (vers Mysql ou Javascript par exemple) tu auras le soucis, donc si l'ordre est important pour ton appli, ajoute le d'une façon ou d'une autre à ton JSON...


---------------
D3
Reply

Marsh Posté le 25-06-2019 à 13:39:32    

Ouaip je vais faire ce qu'il faut pour avoir quelque chose "d'ordonnable".
 
L'ordre n'est pas indispensable mais plus pratique pour faire quelques affichages ensuite (j'ai juste à prendre le tableau et afficher les éléments dans l'ordre), d'où l'intérêt de ce que tu me dis de faire quand même. :)
 
Merci!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed