begin process at 2012 05 31 00:37:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Generation automatique d'une table


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Generation automatique d'une table

lundi 7 avril 2008 à 15:36:26 | Generation automatique d'une table

faty86

Bonjour,
Actuellement je travaille sur une application utilisant PHP & MySQL, j'ai un problème que voici:

Dans ma base de données j'ai les tables:
 
Equipement (ID_EQ,designation...)
Connexion (ID_CN,Type...)
 
Etat(# ID_EQ, # ID_CN)
 
--> Un Equipement peut appartenir une ou plusieurs connexions
-->Une connexion peut avoir un ou plusieurs Equipements
 
Comment générer la table ETAT automatiquement au fur et a mesure que j'ajoute des equipements et des connexions?? Car elle représente juste un lien entre ces 2 tables.

Merci de votre aide c'est vraiment très urgent.
 
lundi 7 avril 2008 à 17:52:22 | Re : Generation automatique d'une table

neigedhiver

Salut,

Je comprends pas bien le sens de ta question... Ou plutôt, le sens que tu donnes à "générer" en parlant de la table...

Ta table permet effectivement de faire la relation entre les deux autres tables... Tu as la structure, je ne vois pas où il y a un problème...

Dans tes tables 'Equipement' et 'Connexion', les identifiants sont uniques et probablement de type auto_increment (peu importe à vrai dire). Ils sont surtout uniques.

Dans ta table Etat, les champs 'ID_EQ' et 'ID_CN' ne sont pas indexés séparément : il ne faut pas y mettre de clef de type 'PRIMARY' ou 'UNIQUE' dessus.
Il faut créer une clef portant sur ces deux champs, en tant que simple 'INDEX'.

Dans une même colonne, une valeur pourra se répéter : c'est pas grave... C'est justement du au fait qu'une connexion peut avoir plusieurs équipements et qu'un même équipement peut servir pour deux connexion.

Si tu le souhaites, tu peux rajouter un champ indexé PRIMARY de type auto_increment, mais ça n'apportera absolument rien, puisqu'a priori, aucune de tes requêtes ne portera dessus.


Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
lundi 7 avril 2008 à 17:56:21 | Re : Generation automatique d'une table

Axe971

Salut,

Et bien à mon avis, quand tu ajoutes un équipement. Tu récupères son identifiant et les identifiants des connexions auxquelles ils appartient puis tu fais des INSERT pour chaque connexion avec le même équipement.

De même pour une connexion, quand tu ajoutes une connexion. Tu récupères son identifiant et les identifiants des équipements qu'elle comprend puis tu fais des INSERT pour chaque équipement avec la même connexion.

Bonne chance,
mardi 8 avril 2008 à 11:34:46 | Re : Generation automatique d'une table

faty86

 Je pense que je vais faire comme a dit Axe971, je vais faire des INSERT directement dans php au fur et à mesure des ajouts des equipements et des connexions!
Merci beaucoup pour votre aide !!!

mardi 8 avril 2008 à 14:27:06 | Re : Generation automatique d'une table

neigedhiver

Salut,

Bon et j'ai toujours pas compris quel était réellement le problème...

Bref.

En faisant tes insert, fais quand même attention à ce que le couple (ID_EQ, ID_CN) ne soit pas déjà présent. Si c'est le cas, il faut faire une update.

Sinon, c'est peut-être là que peut intervenir une index unique, mais non auto_increment.
Cet index UNIQUE serait (par exemple) une concaténation des deux autres. Par exemple pour ID_EQ = 4 et ID_CN = 12, tu aurais un ID_EQ_CN = e4c12
Ca t'assure que le couple (4, 12) est unique.
Avec la simple requête :
INSERT INTO `table` (ID_EQ_CN, ID_EQ, ID_CN) VALUES ('e4c12', 4, 12);
Si elle échoue, c'est que le couple était déjà présent (il faut bien entendu faire un contrôle d'erreurs pour gérer ça correctement), sinon il est inséré dans la table.

Si ta relation 'equipement-connexion' a des propriétés (ie des champs supplémentaires dans la table Etat), alors tu peux les mettres à jour avec la même requête :
INSERT INTO `table` (ID_EQ_CN, ID_EQ, ID_CN, prop1, prop2)
VALUES ('e4c12', 4, 12, val_prop1, val_prop2)
ON DUPLICATE KEYS UPDATE prop1=val_prop2, prop2=val_prop2;

Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
mardi 8 avril 2008 à 14:39:04 | Re : Generation automatique d'une table

faty86

Neige,

Mon problème est que je cherchai une solution pour que la table ETAT soit remplie au fur et à mesure qu'on insère des connexions et de equipements. J'ai pas trouvé de solution directement dans mysql donc je vais le faire dans php.
 C'est une très bonne idée de faire intervenir un index unique qui est la concaténation des deux autres champs(connexion et equipement) ça facilite beaucoup le travail!!

Merci beaucoup!!!

mardi 8 avril 2008 à 15:22:43 | Re : Generation automatique d'une table

neigedhiver

Mmmm... Ok... J'avoue que si c'est possible avec MySQL, je ne suis pas assez calé pour savoir comment.
L'idée de concaténer les ID n'est pas de moi, mais vient tout droit de la méthode Merise.
Quand une table sert de relation entre deux, qu'elle porte ou non des propriétés propres à cette relation, son identifiant EST la concaténation des deux identifiants des tables liées.
Après, c'est juste une manière de l'implémenter en php.


Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
mardi 8 avril 2008 à 15:30:57 | Re : Generation automatique d'une table

faty86

En tout cas merci beaucoup , je ne suis pas experte en PHP donc ton aide est précieuse !!!



Cette discussion est classée dans : table, id, tables, automatique, generation


Répondre à ce message

Sujets en rapport avec ce message

Sélectionner les lignes différentes entre deux tables [ par Mikemadest ] Bonjour,J'ai cherché sans trouver de réponse à mon problème,ce qui m'amène à vous poser cette question !D'avance je m'excuse si j'ai raté la solution relation entre 2 tables [ par rastagnol ] slt !!!voila G un pb pour mettre 2 tables en relations ... je ne sais pas trop comment m'y prendre. G une table commandes avec un champ client_id et u Affichage de doublons dans une recherche sur deux tables [ par rafou77 ] Bonjour,c'est encore moi le newbizzzVoilà mon probleme, je fais une recherche sur deux tables (credits (id,nom,prenom,ect..) ) et (credits5 ( id,id_cl Jointure [ par Teddy_le_gnein ] Hello tous le monde.Voilà mon problème.J'ai une requête à faire, je suis persuadé que ça ne dois pas être si insurmontable que ça, mais voilà je nage Jointure entre deux tables [ par Krasha ] Salut, Sur ma base de données j'ai deux tables distinctes qui devraient avoir une "liaison" entre elles. (les deux tables ci-dessous ne sont que des Un Tcho peu d'aide SVP : Afficher une table avec condition selon ID membre [ par FXPHANTOM ] Bonjour a tous, Je vous expose une situation et mon problème . Situation : Ma base sql se nomme "Kxprotect" J'ai deux tables dans cette base de don Delete enregistrements > aux x derniers . [ par arbilus ] Bonjours j'ai crée un graph avec des données sql via google chart . Celui affiche les 70 derniers enregistrements POUR UN ID (un membre) donné de ma t connection a la table id precis [ par namursite ] bonjour je suis autodidacte Bon je fais un flash blog j ai un dernier petit problême pour vous je suis sur que sava être facile. J ai ceci ---- Ai je bien fait ma table SQL (liaison) ?? (petite partie) [ par c3d94 ] Bonjour je me bat avec une application que je fait pour de la gestion, j'aimerais savoir si déjà j'ai bien compris le liaisons entre deux tables? Voi crée un blog [ par jerome226 ] bonjour ! j'aimerais bien crée un blog ( je connais le php; sql; html; css) mais le problème c'est que je ne sai pas comment mi prendre pour organis


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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,920 sec (3)

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