begin process at 2012 02 09 13:06:45
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de données

 > GÉNÉRATEUR DE CLASSE POUR MYSQL

GÉNÉRATEUR DE CLASSE POUR MYSQL


 Information sur la source

Note :
9,67 / 10 - par 3 personnes
9,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de données Niveau :Débutant Date de création :19/08/2004 Date de mise à jour :25/08/2004 15:42:46 Vu / téléchargé :9 085 / 1 029

Auteur : pdl

Ecrire un message privé
Site perso
Commentaire sur cette source (20)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Introduction

MySQLClassGenerator est un outil qui permet de générer de manière automatique des classes permettant d’interagir avec une base de données MySQL sans devoir pour autant connaître MySQL. Ce mécanisme permet de faire abstraction du SQL qui est nécessaire pour pouvoir lire, écrire ou modifier des données dans une base de données (ici MySQL).

Mise en oeuvre

La mise en œuvre est extrêmement simple. En effet, il s’agit d’un formulaire PHP, qui vous demande les informations concernant l’accès à votre base MySQL. Une fois cette info donnée, il ne vous reste plus qu’à lancer la génération du code. Attention, si vous ne spécifiez aucun nom de table, c’est l’ensemble des tables d’une database qui est examiné.

Attention, ce mécanisme fait appel à la classe DBClass qui sert d’interface pour l’interaction vers la DB.

Deux fichiers sont générés par table. Le premier, qui est le « nom_de_la_table.php » est une classe qui contient simplement la liste des champs de la table avec les méthodes set et get pour chaque champs. Cette classe servira à manipuler les données qui seront utilisées par MySQL. Le deuxième fichier, « nom_de_la_tableDAO.php » contient les méthodes pour accéder à MySQL en utilisant la première classe pour manipuler les données. Cette méthode offre pour chaque table un constructeur par défaut, qui est vide et ne fait rien pour l’instant et 4 méthodes

La première méthode permet sur base de la « primary key » d’aller recherche un enregistrement dans la base de données. Le nom de la méthode est « LoadByID($pk1 [$ pk2, …])». Cette méthode renvoi un objet de type nom_de_la_table.

La seconde méthode permet d’aller rechercher tous les enregistrements d’une table, ou un extraction seulement en spécifiant éventuellement une « where clause ». Le nom de la méthode est « Load($whereclause = « ») ». Cette méthode renvoi une liste (array) d’objet du type nom_de_la_table.

La troisième méthode permet de supprimer un enregistrement d’une table sur base de sa clé primaire. Le nom de la méthode est « Delete($pk1 [$ pk2, …])» La méthode renvoi un booléen qui est true si l’enregistrement à pu être supprimé.

La quatrième méthode permet de sauver un enregistrement à la table. Le nom de la méthode est « Save($nom_de_la_table) ». Attention dans ce cas, le paramètre est un objet correspondant au type de la table (nom_de_la_table). La méthode renvoi true si l’enregistrement a pu être sauvé dans la table.  Cette dernière méthode se charge de voir s’il s’agit d’un nouvel enregistrement, dans ce il fera un insert dans la table en appelant la méthode « Insert($nom_de_la_table) » ou si au contraire il s’agit d’une mise à jour par l’appel de la méthode « Update($nom_de_la_table) ». Pour déterminer l’action qui doit être menée, la méthode Save regarde si la clé primaire est garnie. Si elle ne l’est pas, il considère que c’est un ajout, par contre s’il est garnie, alors on se trouve en présence d’une modification.



 Conclusion

Pour une documentation complète voir le Zip, il y a en plus un exemple complet et fonctionnant !

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

25 août 2004 15:42:46 :
Un nouveau fichier est généré en plus des classes permettant de manipuler les tables mySQL. Ce fichier permet d'avoir le contenu des tables, de les triers sur les différentes colonnes et de mettre un filtre.

 Sources de la même categorie

Source avec Zip RECHERCHE DES DOUBLONS DANS UNE TABLE MYSQL EN SÉLECTIONNANT... par aladec2007
[CRON] INSERT ON DUPLICATE KEY UPDATE par pierreSabatier
Source avec Zip CLASS MYSQL 5/PHP5 AVEC GESTION DES EXCEPTION ET DES REQUÊTE... par devil_may_cry
Source avec Zip Source avec une capture MOTEUR DE RECHERCHE SUR BASE MYSQL FULLTEXT ET BOOLEAN AVEC ... par cod57
SYSTÈME DE PAGINATION AVEC BDD ET IMAGES (FICHIERS) par begueradj

Commentaires et avis

Commentaire de legaulois le 20/08/2004 10:26:45

vraiment nikel, il y a juste 2 ptits trucs ke tu pouré faire en plus, :
- générer automatiquement le fichier équivalent à listerUsers.php
- générer un fichier qui permet de visualiser le tout

tu fais cela et je l'adapte à mon cms !

Commentaire de pdl le 20/08/2004 10:38:19

Ok, pour le premier point, je peux relativement facillement le faire, mais je suis pas sûr d bien comprendre le second. Peux-tu éclairer ma lanterne,stp.

Commentaire de pdl le 20/08/2004 10:44:20

Note que pour la génération du formulaire je suis obligé de faire des choix dans le sens ou tout est des champs texte et je ne sais pas mettre de logique pour des conversions comme quand tu choisis un radio bouton. Une solution ? Si ce n'est que demander lors de la génération de spécifier pour chaque champs le type de champs en html qu'il faut générer et éventuellement sont nom !
Je reconnais que ce serait super, mais je pense que ce n'est pas simple. Je peux étudier la chose, mais cela prendra du temps. Les idées sont les bienvenues.

Commentaire de legaulois le 20/08/2004 11:19:22

pour le formulaire peut-être en interrogeant la base (en fonction du type de champ ? varchar,text, set, etc.)

pour le second fichier, c'est plus simple, c'est juste un fichier qui permettrait de visualiser champ de la base (soit avec ou sans whereclause) [et même à la limite, faire un fichier qui gère affichage des champs (avec formulaire qui permet de choisir)]

Commentaire de legaulois le 20/08/2004 11:20:03

euh tu m'as compris? lol

Commentaire de pdl le 20/08/2004 11:27:34

Je regarde ce que je peux faire pour le premier point.

Pour le second si je comprens bien, tu voudrais que j'affiche  les données de toutes les colonnes de tous les records de la table avec  un filtre éventuelle et tant qu'a réver un nombre max de record par page ?

Je devrais peut-être commencer par cette partie qui est en effet plus facile..

J'espère que j'ai compris !

Commentaire de legaulois le 20/08/2004 11:30:21

exact juste une page qui affiche recorsd de la table des paramètres, et sache qu'après au lieu de proposer MySQLClassGenerator, tu pourras proposer un gestionnaire MySQL

Commentaire de pdl le 20/08/2004 11:55:27

oki, je vais voir tout cela et te tiens au courrant, mais donne moi un petit peu de temps. Merci

Commentaire de legaulois le 20/08/2004 13:01:38

vi je sais le monde ne sait pas fait en une heure ;) hf

Commentaire de pdl le 25/08/2004 15:44:49

Voilà, il y a une heure qui est passée ;). Un premier fichier est généré donnant la liste des données d'une table. Il faut juste changer les liens pour pouvoir éditer, supprimer et prevoir l'ajout. L'automatisation de cela sera pour plus tard.

Commentaire de nioko le 25/11/2004 11:12:59

Vraiment, un super script poo !
Dommage qu'il manque les formulaire d'ajouts ....

Commentaire de wouarf le 04/12/2004 15:36:19

Bonjour, bravo pdl pour le développement de MySQLClassGenerator.

Je me suis inscrit comme membre pour suivre la suite nécessaire. Ton code est le plus clean et le plus structuré et donc le plus adaptable que j'ai pu voir. Je cherche depuis qlq mois l'outil miracle pour créer facilement une admin de site adaptée à chaque cas qui se présente.

Voici des pistes (si tu ne les connais pas déjà) pour l'évolution de ton script.  

J'utilise actuellement phpMyEdit (http://phpmyedit.org/home.php) qui a beaucoup de qualités. Tous les fichiers Listing, Update, Edit, Delete sont générés, facile à personnaliser avec un très gros fichier de CSS et un fichier de config super pour les choix d'affichage (liens graphiques ou textuels, nombre de pages d'affichage, langue utilisée...). Le revers de la médaille c'est que le code casse vite quand on veut aller dans le HTML.

J'ai découvert récemment duevera_formulaire
(http://www.uneautreinformatique.com/rubrique.php3?id_rubrique=8)
Les développeurs sont partis des règles de la méthode Merice pour créer un générateur de formulaires qui tient compte des liens entre les différentes tables d'une même base relationnelle. Il faut bien pensé la structure de sa base pour indiquer les primary keys et les foreign keys puis préciser au générateur le type de liens entre les tables ( relation de type 1-1, 1-n ou n-n). C'est très intéressant de pouvoir appeler des datas de plusieurs tables dans un même tableau. Côté graphisme moins de CSS pour la personnalisation. Ca ne tourne que sous Windows et serveur local est sous OSX ! Et pour le moment je n'arrive pas à l'utiliser correctement.

Je n'ai rien trouvé par contre pour permettre le choix des Input (champs texte 1 ligne ou n lignes, bouton radio ou coches) dans un fichier de paramétrage ou un générateur. C'est ce que je recherche actuellement.

Voilà de quoi bosser pendant de long mois... pour créer le "phpMyGenerator" incontournable in the world.

Commentaire de zandroua le 13/01/2005 21:31:34

Bonjour

Ce script ne fonctionne pas dans mon environnement  en local (windows / apache 1.3.27 / php 4.3.3 / mySQL 4.0.15)
Les symptomes sont les suivants :
* sous IE 6, MySQLClassGenerator.php n'affiche rien !
* sous Firefox 1.0 le script semble fonctionner mais :
  - le lien pour voir le détail des tables est bizarre http://localhost/"".Listcompetition.php."/" et ne fonctionne pas
  - le fichier tableDAO.php est erroné, la fonction Save() contient l'instruction  if () au lieu de if ($tname) .
voilà ...
Avez vous des idées pour m'aider à débloquer cette situation.  Merci d'avance.

Commentaire de zandroua le 13/01/2005 22:29:09

J'ai trouvé l'origine de mon problème.
En fait il ne faut pas que le répertoire "mySQLClassGenerator" soit directement à la racine du site.
Maintenant ça marche.

Commentaire de pdl le 13/01/2005 23:16:49

faudra que je regarde cela de près ! Merci pour l'info. Un de ces 4, je ferai une petite mise à jour des scripts.

Commentaire de pdfarchitectur le 23/03/2005 10:59:16

salut à tous,
j'ai testé en local et en serveur distant, mais j'ai la même erreur, "Parse error: parse error, unexpected '=', expecting ',' or ';' in ...\www\mysqlclassgenerator\listitunes.php on line 109".
cette erreur survient après la génération de la page MySQLClassGenerator.php, le tableau inférieur est bien créer, mais lorque je clique sur le lien de la page générée, cette erreur apparait!
pouvez vous m'aider, je ne suis pas un pro du sql...
merci d'avance

Commentaire de rabaisdiscount le 16/06/2005 00:50:44

Bonjour,

Je suis nouveau avec ce type de programmation.  J'ai essayé d'installer ce sript sur un serveur avec un environnement... Ensim.   Mes webmasters ont vérifié et n'on pas plus le faire fonctionner..

Merci et félicitation pour ces scrits superbe.....

Commentaire de marc660 le 10/07/2007 13:09:44

Bonjour,


C’est exactement ce que je cherche j’ai du voir au moins 100 source avant que je trouve celle la, Trop fort bravo.

Cordialement,

Commentaire de mohakoul le 17/04/2009 12:10:27

bonjour merci pour le script mais il ne me gêner rien il me donne tournure le même formulaire je croix que je ne  comprend pas comment l'utiliser aide moi s'il te plait

Commentaire de mohakoul le 20/04/2009 12:39:17

merci pour le code

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales