L'extension de ug bckffc mysql.php - Olivier-Ultragreen/ugml GitHub Wiki
Gestion de BDD MySql
PHPMyAdmin est un très bon outil pour gérer une base de donnée MySQL, mais chacun conviendra que ce n'est pas très confortable a utiliser pour mettre en ligne ou même mettre à jours les contenus d'un blog ou d'un site web. L'extension que je propose permet la mise à jour des contenus via une interface web plus conviviale.
Que fait l'extension de base ?
L'extension affiche le contenu des tables de votre base de donnée MySQL. Elle vous permet en standard :
- de présenter sous forme d'un tableau paginé les enregistrements de la table
- d'ajouter un enregistrement dans la table
- de modifier un enregistrement
- de copier un enregistrement
- de supprimer un enregistrement ou un lot d'enregistrement
- d'exporter au format CSV le contenu de la table
Et ce quelque soit la structure de la table, bref comme un PHPMyAdmin light mais ... Pour peu que vous respectiez certaines conventions de nommage vous pourrez faire mieux sans rien coder de plus.
Développement/construction par convention
Les conventions cités ci-après sont celles recommandées et intégrées par défaut, elles peuvent-être modifiées par codage/configuration. Nous verrons peut-être plus tard comment.
Les conventions de bases
- Le premier champ de la table doit être nommé id, être une clé primaire et être en auto-incrément.
- Les clés étrangères doivent-être nommées id_{$table}
- Si une table A contient un clé étrangères id_B (de la table B donc), B doit contenir un champ label, ou label_{$lang}
Ces conventions de base sont à mon sens les plus utiles. Combinées, elles permettent :
- en mode liste - l'affichage de label en lieu et place de la valeur numérique de la clé
- en ajout/modification - l'affichage d'un select permettant de choisir la clé (via le label associé)
- les champs type TEXT ou nommé _txt, _html seront affichés
- en mode liste - sous forme de texte brut (pas de tag html) tronqué à 200 caractères
- en ajout/modification - dans un champ textarea
- les champs enum seront affichés
- en mode liste - en valeur brute ou traduction si elle existe
- en ajout/modification - sous forme d'un champ select
- les champs nommés "pwd" seront affichés
- en mode liste - en valeur brute tel que dans la base soit encodé en md5
- en ajout/modification - sous forme d'un champ text vide à remplir
-
les champs nommés id_parent Ils pointent vers un enregistrement de la même table pour les structures en arbre, l'affichage se fait de la même façon que pour les clés étrangères.
-
les champs file_{$name} Ils permettent l'upload d'un fichier associé à l'enregistrement dans le répertoire media/_upload/. Le fichier uploadé est renommé avec un identifiant unique {$table}.{$id}.{$name}.{$ext} ou $ext est l'extension originale du fichier.
- en mode liste - un lien vers _blank ouvrant le fichier uploadé
- en ajout/modification - sous forme d'un champ file permettant l'upload d'un fichier
- en l'absence de convention (pas de problème) Par défaut seront affiché
- en mode liste - la valeur brute tel que dans la base
- en ajout/modification - la valeur brute dans un champ text
Champs réservés
Le champ id
Ce champ est obligatoire. Ce doit être le premier champ de la table doit être nommé id, être une clé primaire et être en auto-incrément.
Le champ inserted_at
Si ce champ existe dans la table il sera rempli au moment de l'ajout en base avec un datetime au format ISO Y-m-d H:i:s.
Le champ updated_at
Si ce champ existe dans la table il sera rempli à chaque modification de l'enregistrement avec un datetime au format ISO Y-m-d H:i:s.