Bonjour/bonsoir ! Smiley smile

Je vous explique un petit peu mon projet.. j'avais créé il y a peu un page web en javascript comprenant quelques références d'articles affichant le nom de l'article / le prix et la description. Me permettant de créer mes remises de prix plus facilement. ( voir photo )
upload/1650117542-80431-sanstitre.jpg

J'ai maintenant en m'a possession un fichier Excel de +- 3500 articles reprenant par colonne référence / description et prix. mon idée était de trouver une solution pour en créer une "base de donnée" et que je puisse faire la même chose mais automatisé. ( pour ne pas devoir encoder en javascript/HTML article / article.. Smiley murf
upload/1650117504-80431-capture.jpg

Pouvez-vous m'éclairer? J'ai des bases en Javascript/HTML mais aucunement en PHP Smiley sweatdrop maintenant je suis ouvert a apprendre pour y arriver.

Dans l'attente de vos réponses
Je vous souhaite une excellente journée !

NeSo
Bonsoir NeSo,

Vaste question !

Selon le contexte il y a en réalité une infinité d'outils et solutions possibles, et on pourrait explorer sans fin les différentes perspectives, mais je pense que ça n'est pas tout à fait ce que tu souhaites.

Donc je vais te suggérer les solutions qui me semblent les plus pertinentes, sachant que d'autres existent et pourrraient aussi faire l'affaire selon les compétences et préférences de chacun.

Les besoins sont les suivants :
1. une base de données relationnelle
2. une page pour lister les articles, avec possibilité de filtrage & recherche
3. un back-end (CRUD) pour gérer les articles (bien que tu ne le mentionnes pas, ça me semblerait bien utile)

Voyons point par point.

1. La base de données
Je ferais ça avec une base de données MySQL. Si tu as 3500 articles, il serait peut-être pertinent de créer une table relationnelle pour les classer par catégorie.

2. une page pour lister les articles
Là il y a vraiment différentes solutions. Et aussi des questions de sécurité.
a) Solution "tout Javascript"
- Récupérer les articles dans la base de données avec l'API Fetch
- Utiliser un moteur de template Javascript comme Mustache ou Handlebars pour l'affichage avec une boucle.

b) Solution VueJs
VueJs est parfait pour ce que tu as besoin de faire. ça demande un peu d'apprentissage, mais ça vaut le coup. Tout ce dont tu as besoin est intégré. Dans ce cas tu envoies les requêtes à la base de données avec Axios, tu crées un composant "Articles" avec toutes ses propriétés et son template HTML.

c) Solution "tout PHP"
Tu crées une page PHP, récupère tes articles en PHP en envoyant tes requêtes vers la base de données, et utilises un moteur de template PHP (personnellement j'utilise TWIG, le moteur de Symphony)

---

Pour les solutions a) et b) il te faut créer une petite API en PHP pour y envoyer tes requêtes.

3. un back-end (CRUD) pour gérer les articles
ça peut paraître compliqué à première vue (et ça l'est si tu ne connais pas encore PHP), mais si ça peut t'intéresser jette un oeil sur PHP CRUD Generator. J'en suis l'auteur. Il te permet de créer une interface d'admin CRUD complète à partir de ta base de données sans programmer.
En quelques minutes tu pourras ajouter/modifier/supprimer des articles, catégories, depuis ton interface d'admin, c'est tout de même pratique.

Bon, je m'arrête là pour l'instant, j'espère que mes réponses tr'auront un peu aidé, tu auras probablement d'autres questions par la suite j'imagine.
Modifié par migli (21 Apr 2022 - 15:42)
Bonjour migli,

Premièrement MERCI beaucoup pour tes explications claires, ça ma permis de faire quelques recherches un peu plus précises.

Je penses d'abord partir sur la solution A) qui semble la plus facile?! Ou plutôt tout en PHP?
Aurais-tu peux être quelques exemples a me montrer pour que je puisses démarrer sur quelque chose?

Merci d'avance !
@NeSo,

Si tu veux y jeter un oeil, j'ai ce "Bootstrap starter project" sur Github (qui correspondrait à l'option c - " tout PHP")

Je ne l'ai pas mis à jour depuis un bon moment, il faudrait maintenant plutôt utiliser Bootstrap 5, mais c'est un point de départ solide.

En résumé:
- il y a tout ce qu'il faut pour personnaliser Bootstrap et compiler le CSS à partir du SCSS
- toutes les requêtes sont dirigées vers index.php, qui utilise Altorouter comme routeur
- l'idée est ensuite de construire un ou des objets PHP, qui vont chercher ce qu'il faut dans la base de données puis envoient les variables nécessaires vers le rendu TWIG.

Il n'y a pas de base de données intégrée au projet, mais si tu en intègres une je te conseille Ultimate MySQL PDO Database Class pour tes requêtes.

Je dois être un peu synthétique ici, j'espère que tout ça n'est pas trop confus.
Bonjour NeSo,

Si tu veux un tip, pour envoyer toutes tes données d'un coup dans ta base de données tu peux te servir de Sublime Text ou Visual Studio code (ou un autre IDE). Il y a le raccourci ctrl + h pour rechercher et remplacer des éléments (mêmes les espaces et les retours chariot). Tu peux faire en sorte de transformer en requête SQL du type INSERT INTO, copier et coller toutes les requêtes d'un coup dans l'éditeur SQL de PhPmyAdmin.


INSERT INTO table VALUES ('valeur 1', 'valeur 2')


C'est comme ça qu'on procède pour les migrations de base de données dans l'entreprise dans laquelle je travaille.
Modérateur
Bonjour NeSo,

Si tu veut conserver ce que tu as déja (html/javascript) , ce serait bien de le partager de façon à te proposer des pistes raccords avec ce que tu as déjà.

Par exemple, en survolant ta question , ma première approche serait de sauvegarder ton fichier excel au format CSV (c'est un fichier texte lisible) , puis de le passer à la moulinette PHP ligne par ligne en extrayant chaque donnée en les enregistrant aussitôt dans une base de donnée.

Ton code , permettrait de se faire une idée de la façon dont tu as déjà structurer ton extraction de donnée et d’où tu la sort ? un fichier texte, un XML, un json, un tableau javascript ? On ne sait pas.

En passant un CSV à la moulinette, tu peut reconstruire un autre fichier avec un format différent ou l'enregistrer dans une base, voir le parser directement en javascript.


Cdt
Modifié par gcyrillus (24 Apr 2022 - 14:54)
Bonjour à tous ! Smiley smile

Premièrement merci BEAUCOUP pour vos éclaircissement !

Pour répondre a gcyrillus, mon ancien code était plutôt simpliste.. Étant donné que je n'avais pas énormément d'article je les avais encodé un par un avec une "Value" et je récupérais cette value pour afficher le prix en jquery :

<option value="11.56" id="K474" data-id="K474">Kariban - Col - K474</option>                                        
<option value="15.41" id="K478" data-id="K478">Kariban - Col zip - K478</option>  
<option value="16.46" id="K4030" data-id="K4030">Kariban - Capuche/zip - K4030</option>    					
<option value="16.10" id="K466" data-id="K466">Kariban - Capuche/zip - K466</option>    


J'imaginais faire plus ou moins pareil mais en allant récupérer la valeur dans une base de donnée. Mais ça me semble VACHEMENT plus compliqué aha