DataIncrement - ajout aux fonctionnalités de phpMyAdmin

Lorsque vous utilisez quelque chose comme phpMyAdmin pour travailler avec des données dans la base de données, il est toujours gênant que le champ lié affiche juste un numéro d'une autre table, au lieu des données spécifiques qui y sont cachées.

Par exemple, le champ `country_id` contient des nombres, pas le nom du pays. Nous devons sauter de table en table. Ou écrivez un sql séparé, ce qui est souvent gênant si nécessaire pour un rapide. Ou composez la requête SQL depuis le téléphone depuis vos mains. Et si vous devez mettre à jour le pays à partir du champ `country_id`, sautez de nouveau de table en table. En bref - tout cela n'est pas pratique.

Il était plus facile de montrer dans le format:

Était

image

Est devenu

image

Défi


Faites une configuration simple pour que les champs de base affichent les données associées d'autres tables. Et pour qu'ils puissent être mis à jour sur place.

Solution


Cette tâche m'a tourmenté il y a longtemps, par la nature de mon activité de développement web. Il y avait plusieurs approches pour le projectile, en conséquence j'ai choisi la solution la plus simple que je pouvais trouver. Et surtout, que j'aimerais utiliser moi-même, et non pas résoudre le problème abstrait des utilisateurs abstraits.

Le résultat est un site DataIncrement.com

Fonctionnement de DataIncrement


  1. Nous connectons notre base de données à DataIncrement en utilisant host , name , pass , dbname (le mot de passe est stocké dans les cookies du navigateur ou dans la session, c'est-à-dire non stocké sur le site, le cas échéant). Vous devez avoir un utilisateur avec la possibilité de se connecter à partir de n'importe quel hôte.
  2. L'enregistrement de toutes les actions se fait par confirmation par mail. C'est peut-être une décision controversée, mais jusqu'à présent. Par conséquent, nous allons au courrier et cliquez sur le lien de la lettre. Ainsi, nous confirmons la connexion.
  3. Après cela, vous pouvez accéder à la liste des bases de données connectées, sur la page principale dataincrement.com
  4. Ensuite, nous cliquons sur la base de données connectée - ce sera une page avec une liste de toutes les tables disponibles.
  5. Ensuite, allez dans l'onglet "Liens" (le deuxième lien du nom de la base de données "Example Base" dans les images "It Was-It Began"), où vous devez configurer la connexion entre les tables pour afficher les données associées. En écrivant du texte non rusé, par exemple:

@link city country_id = country.country_id name region_id = region.region_id name 

Où:

  • sur la première ligne: @link est la désignation de la section et city est le nom de la table
  • plus nécessairement d'une nouvelle ligne et assurez-vous de mettre en retrait sur la gauche
  • la description des champs de la table de ville commence pour laquelle l'affichage sera configuré, c.-à-d.
    country_id = country.country_id est le champ `city`.`country_id` = ` country`.`country_id`
  • plus nécessairement d'une nouvelle ligne et d'une indentation plus profonde
  • nom du champ pour un affichage supplémentaire, c'est-à-dire `pays`.`nom`

Ainsi, nous obtenons l'affichage du tableau à partir de l'image «Maintenant», où en plus de la valeur réelle du champ, la valeur du champ «country». «Nom» est affichée à travers un point-virgule. De la même manière, le réglage a été fait pour un autre champ `region_id` , qui est connecté comme vu du réglage avec le champ` region`.`region_id` .

image

Édition


L'édition des données se fait en double-cliquant dans une cellule du tableau. Ensuite, au bas de la page apparaît spécial. panneau où vous pouvez modifier la valeur et envoyer des données à la modification.

En plus de modifier des champs simples, je prévois à l'avenir de rechercher des champs connexes. Par exemple, afin de changer le pays, vous pouvez saisir une partie du nom et l'ID souhaité lui-même a été proposé pour le remplissage. En fait, il s'agit d'une fonctionnalité standard d'indices lors de la saisie d'une requête de recherche.

Une syntaxe similaire sera utilisée pour configurer les requêtes de recherche, comme pour les sections @link , uniquement avec le @search

 @search city country_id = country.country_id 10 name $* 

où la différence est que:

  1. la restriction des lignes retournées est indiquée, à travers l'espace - c'est le nombre 10
    country_id = country.country_id 10
  2. De plus, les champs à afficher sont indiqués, mais après un espace, un modèle de recherche supplémentaire est indiqué, où dollar $ est la valeur entrée et un astérisque * - signifie n'importe quel caractère.
    Maintenant, j'ai $ * indiqué pour le champ `country`.`name`, c'est-à-dire qu'une recherche par nom fonctionnera par les premières lettres des mots dans le champ spécifié.
    Un modèle peut avoir quatre options: $ , * $ , $ * , * $ *

Conclusion


Pour le moment, le site est un prototype assez fonctionnel et peut être montré sans honte à la lumière. Ce qui a en fait donné naissance à cette note.

Il existe de nombreuses idées et plans, mais bien que ce projet se déroule comme un passe-temps, la critique est acceptée comme un élément de réflexion. Au moins pour que j'arrête de faire ces bêtises et que je commence à faire d'autres bêtises.

La note est écrite comme une tentative de ne pas encombrer la page principale de DI avec toutes sortes de «pages de destination» avec une description, ce n'est pas clair quoi, mais pour que vous puissiez donner un lien vers la description et le principe de fonctionnement. En outre, immédiatement avec des critiques indépendantes, de la série - "ils vous l'ont dit."

Source: https://habr.com/ru/post/fr425939/


All Articles