11528 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je voudrais récupérer une table , l'encoder au format json puis l'envoyer dans un fichier json.

    $recup = $sel->fetch();
    $content = json_encode($recup);
    $file = 'ex.json';
    $value = file_put_contents($file, $content, FILE_APPEND | LOCK_EX);


Mais voilà, j'ai deux problèmes.

Le premier est que si j'actualise deux fois la page qui exécute ce script , mon fichier json ce retrouve avec un doublon. Comment je pourrais faire pour empêcher d'envoyer des données déjà existante ?

Le deuxième problème c'est que j'ai des images en longblob qui n'est pas supporté nativement par json.

J'ai vue que je pouvais utiliser base64 puis les mettre dans mon fichier mais si je fait ça, je ne saurais pas à qu'elle "id" appartient mes images et ça sera le bazar dans mon fichier json.



Pour information j'ai besoin de récupérer ma table (qui contient des articles (prix, résumé,...) dans un fichier json pour ensuite l'utiliser en JS et trier les articles par prix ou catégorie...

En vous remerciant
Bonjour,

Avec file_put_contents tu as le choix entre écrire à la fin du fichier ce qui génère des doublons ou remplacer le contenu du fichier et écraser à chaque fois.
Pour ne pas envoyer les données existantes, il faut lire le contenu du fichier json et comparer avec tes données à écrire.
Après tout dépend de la façon dont tu utilises les données, si elles sont lues par du javascript, tu n'as pas besion de passer par un fichier, il suffit que ton js appelle la page php qui lui renvoie directement du json.
Modifié par gillesr (25 Jun 2021 - 08:46)