PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 14-11-2009 11:55:48

infograph61
Membre
Inscription : 25-09-2009
Messages : 74

Liaisons entre tables

Bonjour à tous,
J'ai une table avec deux champs ( article et désignation) et une autre avec 10 champs ( les deux premiers champs sont identiques à me première table.
Question :
Est il possible que le deuxième table soit mise à jour automatiquement lorsque la première est modifiée?
A la question pourquoi avoir deux tables, la réponse est :
La table 1 sera mise  à jour (2 fois par jour)  à partir d'un autre serveur.

merci à tous pour votre aide éventuelle.

Un infographiste qui essaie d'apprendre le PHP ( et a beaucoup de mal)

Hors ligne

#2 14-11-2009 12:22:41

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Liaisons entre tables

>>A la question pourquoi avoir deux tables, la réponse est :
>>La table 1 sera mise  à jour (2 fois par jour)  à partir d'un autre serveur.

Pourquoi ne pas faire du temps réel ??

>>Est il possible que le deuxième table soit mise à jour automatiquement lorsque la première est modifiée?

oui, on peu faire ça avec un trigger wink
a++

Hors ligne

#3 14-11-2009 12:38:06

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Liaisons entre tables

qqchose du genre :

CREATE TRIGGER nomtrigger BEFORE INSERT ON tatable
FOR EACH ROW
    BEGIN
         INSERT INTO  NEW.article,NEW.designation FROM tonautretable
    END




a++

Hors ligne

#4 14-11-2009 12:56:42

infograph61
Membre
Inscription : 25-09-2009
Messages : 74

Re : Liaisons entre tables

Merci Pierrot, pour l'info, je me lance dès maintenant dans cette direction.

Hors ligne

#5 14-11-2009 13:35:18

infograph61
Membre
Inscription : 25-09-2009
Messages : 74

Re : Liaisons entre tables

Bon je commence à voir comment cela fonctionne, mais question bête le create trigger jele mets OU.?
@+

Hors ligne

#6 14-11-2009 14:00:54

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Liaisons entre tables

tu utilises quoi pour gérer ta base de données ?
a++

Hors ligne

#7 14-11-2009 14:11:25

infograph61
Membre
Inscription : 25-09-2009
Messages : 74

Re : Liaisons entre tables

C'est un base données alimentée par des formulaires Php
Par contre me première table  ( 2 champs) sera alimenté depuis un autre serveur ( .... mais, je ne sais pas comment)

Hors ligne

#8 14-11-2009 14:12:34

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Liaisons entre tables

utilises tu phpmyadmin ?
a++

Hors ligne

#9 14-11-2009 14:14:53

infograph61
Membre
Inscription : 25-09-2009
Messages : 74

Re : Liaisons entre tables

Oui, c'est bien php admin
merci de te pencher sur mon probleme
@+

Hors ligne

#10 14-11-2009 14:32:52

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Liaisons entre tables

bon, je te met qq chose pour ce soir wink
de suite, je suis occupé wink
donne moi le format exact des tes tables.
n'oublis pas qu'il te faut un champ unique sur lequel t'appuyer wink

a++

Hors ligne

#11 14-11-2009 14:57:44

infograph61
Membre
Inscription : 25-09-2009
Messages : 74

Re : Liaisons entre tables

C'est vraiment super de bien vouloir m'aider :

Table d'origine :

CREATE TABLE IF NOT EXISTS `liste_article` (
  `Code_article` varchar(11) NOT NULL,
  `Designation` varchar(40) NOT NULL,
  UNIQUE KEY `Code_article` (`Code_article`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Contenu de la table `liste_article`
--

INSERT INTO `liste_article` (`Code_article`, `Designation`) VALUES
('FM-H8000001', 'BOUCHON,D29                  '),
('FM-H8000003', 'BOUCHON,D17                  '),
('FM-H8000008', 'FLACON-BLANC,75ML,DUMA   '),

Ensuite la table qui doit être mise à jour automatiquement (2 champs commun)

CREATE TABLE IF NOT EXISTS `etui` (
  `Code_article` varchar(11) NOT NULL,
  `Designation` varchar(40) NOT NULL,
  `Plan_tech` varchar(35) NOT NULL DEFAULT 'NA',
  `Specif_tech` varchar(30) NOT NULL DEFAULT 'NA',
  `Pharmacode` varchar(5) NOT NULL DEFAULT 'NA',
  `Couleur` varchar(25) NOT NULL DEFAULT 'NA',
  `Vernis` varchar(5) NOT NULL DEFAULT 'NA',
  `Braille` varchar(5) NOT NULL DEFAULT 'NA',
  `Type_pattes` varchar(20) NOT NULL DEFAULT 'NA',
  `Imprimeur` varchar(25) NOT NULL DEFAULT 'NA',
  `Carton` varchar(15) NOT NULL DEFAULT 'NA',
  `Date_val` date NOT NULL,
  `Commentaire` varchar(15) NOT NULL,
  UNIQUE KEY `Codearticle` (`Code_article`),
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

les champs restant de cette  table seront mis à jour d'après un formulaire PHP.


Encore Merci
Bon courage
@+

Hors ligne

#12 14-11-2009 17:01:30

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Liaisons entre tables

Voilou, les deux triggers wink

-- 1er trigger sur insert
DELIMITER $$
CREATE TRIGGER ins_liste_article BEFORE INSERT ON liste_article
FOR EACH ROW
    BEGIN
         INSERT INTO  etui (Code_article,Designation) VALUES (NEW.Code_article,NEW.Designation) ;
    END
$$
DELIMITER ;

-- 2 iem trigger sur update
DELIMITER $$
CREATE TRIGGER up_liste_article BEFORE UPDATE ON liste_article
FOR EACH ROW
    BEGIN
         UPDATE etui SET Designation=NEW.Designation WHERE  Code_article=NEW.Code_article;
    END
$$
DELIMITER ;

Apres avoir mis ces 2 triggers dans la base de données, un ajout ou une modification sur la table 'liste_article' devrait se répercuter sur la table 'etui'.

Je met cet exemple a titre pédagogue wink
Mais je ne vois pas qu'elle contrainte t'oblige a faire çà comme çà;)

bon courage, parce qu'en réfléchissant de cette manière, tu vas en avoir besoin wink


a++

Hors ligne

#13 14-11-2009 17:21:54

infograph61
Membre
Inscription : 25-09-2009
Messages : 74

Re : Liaisons entre tables

vraiment merci pour cet exemple.
J'explique ma démarche:
j'ai une base de données de référence (BPCS sur un serveur)
mais comme je peux pas renseigner mes infos techniques dans cette base, il me faut une autre base.
donc la seule solution que j'ai trouvé, c'est d'obtenir une liste ( liste_article ----->mise à jour régulièrement) des articles qui sont créés dans BPCS et de m'en servir pour gerer mes infos techniques dans ma base etui.

Par contre autre chose, je ne comprends pas comment faire pour mettre les triggers dans la base.

Encore mille fois merci pour ton aide.
@+

Hors ligne

#14 14-11-2009 17:26:27

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Liaisons entre tables

un trigger est une suite d'instruction SQL wink
Donc, tu colle de DELIMITER $$ à DELIMITER ; dans le textarea de PHPMyAdmin et tu lance le 1er ordre create trigger wink
tu fais de même pour le 2iem wink
et tes 2 triggers sont dans la DB wink

après, y  a pu qu'a inserer et modifier pour vérifier le bon fonctionnement wink
Mais, il ne devrai pas y avoir de probleme wink
a++

Dernière modification par Pierrot (14-11-2009 17:27:09)

Hors ligne

#15 14-11-2009 18:30:05

infograph61
Membre
Inscription : 25-09-2009
Messages : 74

Re : Liaisons entre tables

Super, j'ai fais mes premiers test et cela fonctionne.

Un grand merci à toi Pierrot.
Bonne fin de week-end

@+
Infograph61

Hors ligne

#16 14-11-2009 18:34:32

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Liaisons entre tables

Bien content de t'avoir aidé wink
Ca me fait plaisir de revenir sur ce site que j'ai lâchement abandonné pendant près de 5 ans big_smile:D
Enfin un topic mené à son terme sans anicroche big_smile:D
a++

Hors ligne

#17 14-11-2009 18:41:28

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Liaisons entre tables

D'aileur, ce topic n'a pas sa place ici roll
il devrait être dans la section MYSql roll
Alors, qu'est-ce que vous foutez les modo's mad:mad:
a++
big_smile:D

Hors ligne

#18 14-11-2009 19:27:28

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : Liaisons entre tables

Suffisait de demander... wink


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#19 14-11-2009 19:31:58

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Liaisons entre tables

bah, c'est ce que j'ai fais big_smile:D

a++

Hors ligne

#20 14-11-2009 20:17:20

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Liaisons entre tables

Nos réactions de modo sont empreintes du syndrome de l'œuf de Pediculus humanus


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums