https://github.com/fredgainza/generate_table_mysql
Generate editable tables from database sql
https://github.com/fredgainza/generate_table_mysql
bootstrap4 crud-table editable-table jquery-ajax mysql permission-manager search-engine table
Last synced: 3 months ago
JSON representation
Generate editable tables from database sql
- Host: GitHub
- URL: https://github.com/fredgainza/generate_table_mysql
- Owner: FredGainza
- License: gpl-3.0
- Created: 2023-02-22T12:58:55.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-05T19:01:18.000Z (10 months ago)
- Last Synced: 2025-01-16T22:29:13.048Z (5 months ago)
- Topics: bootstrap4, crud-table, editable-table, jquery-ajax, mysql, permission-manager, search-engine, table
- Language: PHP
- Homepage:
- Size: 1.52 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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](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()
```php
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:
```php
$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 :
```php
$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 éditablesExemple :
```php
$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
* **Frédéric Gainza** _alias_ [@FredGainza](https://github.com/FredGainza)
## License
Licensed ``GNU General Public License v3.0`` - see [LICENSE](LICENSE) for more informations