Skip to content

FredGainza/generate_table_mysql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Generate Table Mysql

  • Générer des tables de votre base de données MySQL
  • Mise à jour des champs intégrée
  • Pagination + recherche avancée
  • Mode gestion des droits utilisateurs possible

Demo

https://generate-table.fgainza.fr

Requirement

PHP 7.4
Bootstrap 4.6
Jquery 3.6.3

Install

Les différentes bibliothèques sont déjà installées

Appeler la fonction tableDatabase()

echo tableDatabase(
    $conn,
    $table,
    $idTab = NULL,
    $title = NULL,
    $limit = 25,
    $nb_between = 2,
    $array_select_limit = [3, 5, 10, 25, 50, 100, 500, 1000],
    $cols_selected = NULL,
    $cols = NULL,
    $formats = NULL,
    $table_permissions = NULL,
    $displayPagination = "both",
    $order_column = NULL,
    $order_sort = "asc"
);
  • $conn (instance PDO) : Connexion PDO (voir le dossier app/)

  • $table (string) : Nom de la table

  • $idTab (string) : id de la table

  • $title (string) : Titre de la table

  • $limit (integer) : Nombre d'éléments par page (par défaut 25)

  • $nb_between (integer) : Nb max de pagination autour de la page active (par défaut 2)

  • $array_select_limit (array) : Tableau des nb d'éléments par page possibles (par défaut [3, 5, 10, 25, 50, 100, 500, 1000])

  • $cols_selected (array) : Liste des champs à afficher
    (seront affichés dans l'ordre indiqué)
    Par défaut, tous les champs sont affichés

  • $cols (array) : Tableau associatif [db_field => intitulé thead th] pour définir les intitulés à afficher pour les champs de la table

Exemple:

$cols = [
    "user_id" => "User Id",
    "user_firstname" => "Firstname",
    "user_lastname" => "Lastname",
    "user_company" => "Company",
    "user_email" => "eMail",
    "user_nb_pass_fail" => "Nb errors",
    "user_verified" => "Verified",
    "user_created_at" => "Date creation",
    "user_updated_at" => "Date last update"
]
  • $formats (array) : Définir un type différent d'affichage que celui de la table
    Tableau associatif [db_field => [new format, [old_value => new_value]]] rq: permet notamment de transformer un champ varchar, bit, tinyint... en variable booleen (dans ce cas, indiquer "boolean" pour le nouveau format)

Exemple :

$formats = [
    "user_verified" => [
        "boolean",
        [0 => false, 1 => true]
    ]
];
  • $table_permissions (array) : Cas particulier de création d'une table de gestion des droits (voir l'exemple pour une meilleure compréhension)
    Ce tableau ne comprendra que des booléens comme champs éditables

Exemple :

$permissions = [
    "query" => "
        SELECT
            users.user_id,
            users.user_firstname,
            users.user_lastname,
            users.user_company,
            permissions.admin,
            permissions.actifUser,
            permissions.canAdd,
            permissions.canEdit,
            permissions.canValid,
            permissions.canDelete,
            permissions.updated_at 
        FROM
            users
            LEFT JOIN permissions ON users.user_id = permissions.user_id
        ",

    "primary_key" => "user_id",

    "toggleFields" => [
        "admin", 
        "actifUser",
        "canAdd",
        "canEdit",
        "canValid",
        "canDelete",
    ],

    "tr_special" => [
        "class_special" => "bg-admin",
        "condition" => [
            "field" => "admin",
            "value" => "1",
            "disabled" => true
        ]
    ]
];
  • $displayPagination (string) : Définir le placement de la pagination (au-dessus et/ou au-dessous du tableau)
    Valeurs possibles: "top", "bottom", "both" (par défaut "both")

  • $order_column (string) : Définir la colonne triée par défaut (par défaut la clé primaire)

  • $order_sort (string) : Définir l'ordre de tri par défaut
    valeurs possibles : "asc", "desc" (par défaut "asc")

Author

License

Licensed GNU General Public License v3.0 - see LICENSE for more informations