Excel et base de données mysql [Résolu]

Signaler
Messages postés
15
Date d'inscription
vendredi 12 décembre 2008
Statut
Membre
Dernière intervention
9 avril 2020
-
Messages postés
15
Date d'inscription
vendredi 12 décembre 2008
Statut
Membre
Dernière intervention
9 avril 2020
-
Bonjour, je poste ma demande ici car j'ai quelques soucis par rapport à un site internet que j'ai remis en ligne récemment.

En gros il s'agit d'encyclopédies basées sur un fichier Excel.
Voici le lien vers celui-ci : https://lepotager-demesreves.fr/1Liste.xlsx ; et celui vers la page principale de mon site : https://lepotager-demesreves.fr/Liste-plantes-potageres-nom-francais-latin-et-synonymes.php

J'ai toujours utilisé le tableau de ce fichier comme seule et unique table de ma base de données. Je l'enregistrais sous format CSV et je me servais de Wamp pour l'exporter sous format SQL. Et çà marchait très bien ainsi jusqu'ici mais là je n'y arrive plus :(
J'ai passé plusieurs années sans remettre la tête la dedans, je n'ai jamais eu beaucoup de connaissances, ni d'expérience, dans ce domaine, et j'ai le sentiment que les choses ont pas mal évolué depuis ! Donc je me sens bien perdu...

Si vous pouviez me donner une solution ou des pistes pour gérer ce problème !

Je tenais à continuer de développer ma base de données sur Excel, car j'y étais très à l'aise, mais si vous avez d'autres suggestions, je suis preneur, sachant que je fais ceci dans un but non lucratif, que je n'ai que peu de moyens et que l'idéal serait de pouvoir accéder à cette base de données en ligne, de manière simple et sécurisée, de sorte que d'autres personnes puissent la modifier et/ou la compléter, avec moi.
Le must serait même de pouvoir le faire de différentes manières, sans avoir besoin de connaissances approfondies en informatique. Je pense, par exemple, à une extension (widget, plugin...), directement installé sur le blog lié au site internet, ou à un logiciel ou, encore, à un code source (php/sql, de préférence), plus ou moins adapté, sur une ou plusieurs page(s), permettant de modifier et/ou compléter la base de données, comme un fichier Excel, avec ou sans formulaire(s).


J'ai entendu parler de logiciels de gestion de bases de données, en plus de serveurs comme Wamp, mais je ne suis vraiment pas à l'aise avec tout çà...

Merci d'avance et bon week-end à vous :)

6 réponses

Messages postés
28905
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 mai 2020
2 461
Bonjour,

Beaucoup de choses dans une seule question....
Pour plus de clarté sur le forum, nous essayons de ne traiter qu'une seule question par discussion.
Donc commençons par celle ci :

Je l'enregistrais sous format CSV et je me servais de Wamp pour l'exporter sous format SQL. Et çà marchait très bien ainsi jusqu'ici mais là je n'y arrive plus :(

Tu n'y arrives plus... c'est à dire ???
Que fais tu exactement (les étapes suivies.. ) ?
Sur quoi bloques tu ?
As tu un message d'erreur ?



Messages postés
15
Date d'inscription
vendredi 12 décembre 2008
Statut
Membre
Dernière intervention
9 avril 2020

Merci pour ta réponse :)

Il passe un temps infini à charger. J'ai d'ailleurs du changer "php_admin_value max_input_time 360" dans le fichier "phpmyadmin.conf", mais même 1h çà ne lui suffit pas !
Avant c'était "php.ini" qu'il fallait changer et çà passait sans problème, avec le même fichier, enregistré en CSV (séparateur : point-virgule).
J'ai essayé de modifier d'autres paramètres, dans d'autres fichiers de Wamp, sur Excel et sur phypyadmin, mais sans succès.
Et puis j'ai essayé d'autres serveurs locaux et SGBD mais je n'arrive pas à m'y retrouver.

J'aimerais vraiment bien y arriver avec Wamp mais je pense quand même de plus en plus à l'abandonner, d'autant plus que je ne m'en servais que pour çà (je fais tous les ajouts et modifications de pages, codes, directement via Filezilla et notepad++), ou à trouver une ou plusieurs solution(s) en plus, mais la/les-quelle(s) ?!

Peut-être que je devrais me renseigner sur le forum de Wamp... Mais je ne sais pas si çà vaut vraiment le coup.
Messages postés
15
Date d'inscription
vendredi 12 décembre 2008
Statut
Membre
Dernière intervention
9 avril 2020

Peut-être que j'ai zappé un truc, vu que çà fait bien 4/5 ans que je l'avais pas fait, mais j'ai passé plus de 30 heures, en deux/trois jours, à me prendre la tête, à m'en rendre malade, avec çà, alors que j'étais parti pour tout autre chose...
Bref, je sais plus ou chercher, quoi, comment...
Messages postés
28905
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 mai 2020
2 461
La table qui doit contenir les données est un reflet de ton fichier excel ???
94 colonnes ????
7500 lignes ?
Tu m'étonnes que ça mette du temps à s'enregistrer dans la bdd....

A part revoir le schéma de ta table.. je ne vois pas comment améliorer ça.
Il faudrait découper ta table en plusieurs... certaines données se répétant comme la catégorie, l'auteur, les précautions.....
Messages postés
15
Date d'inscription
vendredi 12 décembre 2008
Statut
Membre
Dernière intervention
9 avril 2020

Elle fait 101 colonnes (enfin 100 désormais) et plus de 20000 lignes mais se charge en un rien de temps depuis toujours... D'ailleurs le site est fluide lui aussi, même cette page principale qui affiche les plus de 3500 fiches en même temps.

Mais, oui, j'y pense aussi... Pas dans ce sens mais parce que çà devenait assez compliqué de "gérer" plus de deux millions de cellules. J'ai donc supprimé toutes les lignes correspondant aux fiches des synonymes, dans ce fichier mais pas encore dans la bdd.

Il n'y a pas de répétitions, chaque colonne a sa raison d'être. C'est ce qui m'a permis d'être aussi précis, rigoureux et, donc, d'aller aussi loin... A part celle que j'ai supprimée, qui correspondait à l'id des synonymes.
Toutefois je réfléchis à plusieurs possibilités de découpes... En 4, par exemple (dénomination/identité, comestibilité/usages et précautions, culture et liens), pour les colonnes, et alphabétiquement, pour les lignes. Mais si c'est pour me retrouver avec je ne sais combien de tableaux excels (et/ou de tables sql) à gérer, je ne suis pas sûr de mieux m'y retrouver.

Ah oui et si j'ai pu remettre ce site en ligne c'est parce que j'avais une sauvegarde sql de cette table, que j'ai pu charger sans problème sur le serveur externe (mais pas en local, wamp ne charge qu'environ 1700 lignes je crois). J'ai pu aussi exporter cette table, en format csv, sans fautes ou presque dans excel, mais, là encore, je n'arrive pas à (re)charger ce fichier, ni en local ni sur phpmyadmin de l'hérbergeur.

D'ailleurs j'ai hésité à ouvrir un ticket avant de venir exposer mon problème ici... Mais je vais faire çà aussi en plus.

Toujours est-il que je ne vois pas pourquoi Wamp ne supporterait pas ce fichier alors qu'il l'a supporté sans problème, pendant des années, et qu'il était deux fois plus gros, que ce n'est pas énorme, en terme de mega octets, et qu'il accepte une partie du fichier en sql. Il doit surement y avoir moyen de modifier d'autres paramètres mais, pour le moment, je préfère profiter de ce soucis pour imaginer, concevoir et préparer la suite.
Je suis donc plutôt parti à la recherche de scripts pour afficher tout ou parties de cette table et ajouter/modifier des infos, directement sur mon site.
Messages postés
28905
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 mai 2020
2 461

Il n'y a pas de répétitions, chaque colonne a sa raison d'être.

Les répétitions.. c'est au niveau des données qui se trouvent dans ces colonnes....


Je suis donc plutôt parti à la recherche de scripts pour afficher tout ou parties de cette table et ajouter/modifier des infos, directement sur mon site.

C'est en effet une meilleur idée.
Et pour ça, tu vas devoir coder....
Messages postés
15
Date d'inscription
vendredi 12 décembre 2008
Statut
Membre
Dernière intervention
9 avril 2020

Ah oui, au niveau des données, c pas faux... J'ai tendance à rabâcher de différentes manières ! Mais, plus sérieusement, c'est surtout qu'il y a différentes sources, références, et que c'est très complexe de les citer, sans les séparer, et donc créer des répétitions. J'ai d'ailleurs, pour le coup, "inventé" une nouvelle méthode, pour plus de précision, tout en faisant en sorte que ce soit davantage accessible, compréhensible, pour tout un chacun.

Mais c'était surtout, là encore, au niveau des lignes que j'ai supprimées, qu'il y avait le plus de répétitions des données, inutiles qui plus est.

Oui, mais çà ne me fait pas trop peur, niveau html, php, sql et css. J'ai dû remettre le nez dedans, pour chaque page, il y a un mois, quand j'ai décidé de le remettre en ligne.
Je l'ai fait entièrement seul mais j'ai appris et me suis inspiré de tutos et codes sources. En fait j'ai (ap)pris sur le tas, juste ce qu'il me fallait pour réaliser cette encyclopédie. Mais je serais bien incapable de réaliser la moindre page html de tête, sans copier-coller des bouts de codes de différentes pages déjà existantes sur mon site ou sur internet. Et, même si c'est aussi une passion, je ne compte pas non plus apprendre par cœur toutes les formules, etc..., juste pour un site, d'autant plus que mon but est avant tout à l'extérieur, dans la nature !
Messages postés
15
Date d'inscription
vendredi 12 décembre 2008
Statut
Membre
Dernière intervention
9 avril 2020

Et, franchement, j'espère bien trouver de l'aide, à tous les niveaux, pour continuer cette/ces encyclopédie(s), vu le temps que çà m'a pris jusqu'ici (et le coût et tous les sacrifices liés à çà) et vu le nombre de personnes (et groupes, communautés) intéressé(e)s par celle(s)-ci et le projet, ou ce genre de projet, en général, ne serait-ce que pour pouvoir faire évoluer les choses encore plus rapidement, dans le bon sens...
Messages postés
15
Date d'inscription
vendredi 12 décembre 2008
Statut
Membre
Dernière intervention
9 avril 2020
>
Messages postés
15
Date d'inscription
vendredi 12 décembre 2008
Statut
Membre
Dernière intervention
9 avril 2020

Bon ben çà y est, j'ai ouvert un ticket sur nuxit... Et je vais peut-être aussi , quand même, demander de l'aide sur le forum Wamp, en parallèle. En fait j'aimerais vraiment bien avoir plusieurs solutions qui fonctionnent vraiment bien, histoire d'avoir plusieurs cordes à mon arc, surtout au niveau de cette base de données qui est quand même le nerf de la guerre...
Bonjour,
"c'est surtout qu'il y a différentes sources, références, et que c'est très complexe de les citer, sans les séparer"
C'est bien ça le problème je pense.
Il faut les organiser de manière que ce ne soit pas complexe pour leur traitement informatique, ce qui permet un traitement rapide et non des lenteurs.
Encore pire les redondances c'est autant à lire quand une donnée est nécessaire.
La seule chose qui compte pour des tables de données c'est leur intégrité. Faire des répétitions

SQL et autres langages ce sont des outils mais c'est la conception qui importe. Je veut dire qu'une maison avec des murs mal placés ça sera dur d'y circuler si vous comprenez mon analogie un peu bête.

Je vous conseille d'aller voir des cours/tutos sur les méthodes d'analyse comme celui ci:
https://sqlpro.developpez.com/cours/modelisation/merise/


Quelques règles approximatives et simplifiées(et pas toujours exactes, la méthode Merise est justement un cheminement d'étapes strictes pour faire un modèle efficace et durable ce qui n'empêche pas - au contraire - des choix à faire) et conseils pour faire un tri.

_Un système de gestion de données(SGBD) qui se compose d'une seule table ça ne sert strictement à rien. Alourdit l'ensemble. Ce qui permet un traitement efficace ce sont des tables qui regroupent par entité thématiques et de croiser différentes tables par leur valeur(s) identifiants.
ex: Une table "utilisateur" est identifiée par les champs(de données: le nom de la colonne) nom, prénom et date de naissance. La date de naissance pour éviter les homonymes comme 2 personnes différentes qui s’appellent Pierre Dupont(plus fréquent que l'on pense), il y a peu de chances qu'elles aient la même date de naissance au jour près. Sans ça en cas de personne d'exactement même nom+prénom il est impossible de repérer qui est qui dans la table, on peut très bien la jeter et tout le reste avec.
  • Il y a aussi son adresse , son genre, et d'autres informations qui se rapportent à l'utilisateur. Ces données(les champs: toujours le nom des colonnes pas les valeurs qu'elles peuvent prendre) vont être croisée avec une autre table "commande". En reportant les identifiants de "utilisateur" dans commande on peu associer un utilisateur avec une et une seule commande.

L'avantage que je veut mettre en avant c'est que il n'y a pas multiplication de données ou comme vous le faites remarquer vous êtes obligé de faire apparaître énormément de colonnes pour une seule donnée(la valeur que prennent les champs cette fois ci) d'où redondance, lourdeur de stockage et lenteur de traitement.
> Arthurin
Description pour la table commande des champs identifiants pour l'exemple:
On peut utiliser un numéro de commande unique(c'est ça qui détermine qu'un champ est identifiant, que le système puisse le retrouver à partir de sa seule valeur ou plusieurs comme c'était le cas de notre Pierre Dupont auquel on dit rajouter sa date de naissance pour pas confondre 2 Pierre Dupont). Numéro de commande permet de retrouver n'importe quelle commande, par recoupement l'utilisateur qi a passé la commande.
D'autres champs de données de la table "commande" sont date de commande, articles commandés, montant de la commande.
Par contre cette table contiendra comme valeur identifiants le nom et prénom + date de naissance reporté de la table utilisateur. A partir de là on peut retrouver et trier ce que l'on veut.

C'est à dire : pour un utilisateur quelles sont ses commandes. Pour une commande quelle est l'utilisateur qui a passé commande, etc...tout les tris et regroupements sont possibles.
> Arthurin
Je n'ai pas regardé votre fichier Excel et je me doute qu'en parlant de botanique cela n'a rien à voir, sauf pour le principe.

Le but de l'analyse est de regrouper en entités thématiques qui permettent un traitement informatique parfois loin de la logique humaine. Où la logique humaine guidée par la méthode intervient c'est pour faire ces regroupements qui permettent de faciliter le développement de la partie purement technique(SQL) et déterminer la logique du regroupement que cela implique. n ordinateur n'ayant aucune logique c'est une bête machine à calculer, ou plutôt ici à faire des recoupements et tris. D'où l'importance d'avoir des entités qui permettent de lui faciliter la tâche ce que ne peut faire une seule table et implique des redondances.

Plus concret un exemple d'un modèle logique de données pour une commande:

https://particular-course.blogspot.com/2014/05/exercice-corrige-mcd-gestion-de-commandes.html

Comme vous pouvez voir dans ce cas d'école il faut ajouter à l'existence des tables 'utilisateur' et 'commande' une table 'article'. Cela évite de multiplier des données inutiles car redondantes et de pouvoir gérer chaque item représenté par une entité(une personne, une commande, un produit). Cela permet une plus grande souplesse et l’optimisation des traitements par la facilité à retrouver et utiliser chaque table de façon croisée. Donc moins de données à traiter quand on en cherches une.

Voilà en espérant avoir été un minimum clair(mais sommaire) et fait comprendre que le rôle de l'analyse et de la conception est primordial car tout le reste en découle:
_la facilité(ou pas) de faire le programme avec les outils SQL, PHP, HTML.
_de la maintenir et de permettre des ajouts
_du temps de traitement et l'intégrité des données soit l'assurance que le programme fonctionne et fonctionnera

Un programme aura d'autant plus de facilités que les entité logiques(les tables) sont bien organisées et reliées par rapport à un but. Il sera fonctionnellement plus efficace (en plus des autres problèmes que ne pas le faire peut impliquer) que le programme(SQL) ait à trier plusieurs tables avec une donnée à recoupée qu'une table unique avec multiplication et redondances à lire pour trouver la ligne dont il a besoin.
Multiplier la même donnée su une seule ligne est une erreur qui rendra le traitement plus lourd, le poids de stockage nécessaire et au fil du temps amène au problème auquel vous êtes confronté: le temps de traitement par rapport au nombres de données ne permet pas une gestion efficace des données, de leurs tris et modification puisque le programme n'a pas de repère fiable :
les identifiants et recoupement entre les tables qui allège la charge de travail/donnée à parcourir en n'utilisant que les identifiants et les rapports entre les tables plutôt que des lignes à la suite qu'il doit parcourir au petit bonheur avant d'arriver à celle qui est nécessaire. Bon c'est pas vraiment ça mais je vous laisse vous pencher sur la méthode qui est mieux expliquée et dont je résume maladroitement une dizaine d'étapes.

La première :
Faites une liste de toutes vos données existantes.
Ensuite:
Les regrouper
Puis:
éliminer les doublons et ajouter celles éventuellement nécessaire.
etc... jusqu'au modèle de tableS que l'ordinateur cette bête sans discernement peut utiliser et qui correspond aux liaisons nécessaires de vos informations.
Messages postés
15
Date d'inscription
vendredi 12 décembre 2008
Statut
Membre
Dernière intervention
9 avril 2020

Bonjour et merci beaucoup d'avoir pris le temps de me répondre ! Je vais étudier çà de plus près ;)

En attendant, j'ai réussi à régler mon problème d'importation/exportation :)
En fait, niveau CSV, j'avais "juste" oublié l'essentiel... Quelque chose d'assez récurrent, apparemment... Tellement évident... Et pourtant !
Mysql exporte, et importe, par défaut, ses fichiers CSV avec une virgule comme séparation entre les champs/colonnes !

J'ai quand même réduit ma table, comme je l'avais déjà fait pour le tableau Excel correspondant. Et puis j'ai réinstallé WAMP et j'ai pu charger cette table au format SQL, sans problème, sans même avoir besoin de modifier les fichiers de WAMP. Et puis j'ai réussi aussi à charger cette table, après y avoir fait d'autres modifications, au format CSV, en local mais aussi sur mon hébergement... Chose que je n'avais jamais réussi à faire jusque là (je passais toujours par WAMP, comme je l'ai précisé au départ).

Je peux donc me servir d'Excel, de WAMP et du PhpMyadmin de mon hébergeur, pour modifier cette table et l'importer/exporter de différentes manières, comme je l'espérais... Mais j'ai aussi, en plus, trouvé un script particulièrement simple, mais relativement complet et bien fait, pour gérer les différents enregistrements (ajouts, suppressions, modifications...) : MySQL Edit Table 1.3.1. Bref, que du bonheur !

Merci encore à vous deux et bonne continuation :)