IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Remplir table n-n depuis Formulaire PHP Avec une Base de Donnée SQL SEVER


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 117
    Points : 92
    Points
    92
    Par défaut Remplir table n-n depuis Formulaire PHP Avec une Base de Donnée SQL SEVER
    Je suis confronté à un petit problème en PHP/MS SQL.
    Je pense qu'il est possible de régler ça proprement directement en SQL, c'est pourquoi je poste dans cette rubrique là

    Je vous explique le soucis:

    J'ai 3 tables:

    table1
    id
    valeur

    table2
    id
    valeur

    table_jointure_1_et_2
    id_table1
    id_table2


    Pour information id_table1 et id_table2 sont des FOREIGN KEY de table1 et table2.
    Ce que je souhaite, c'est que lors d'une nouvelle insertion dans la table "table1", la table de jointure "table_jointure_1_et_2" puisse être automatiquement remplie avec pour valeur de "id_table1", la valeur de l'"id" qui a été automatique créé (auto_increment) de la table 1, et pour valeur de "id_table2", un "id" par défaut (typiquement 1).

    Le problème c'est que je ne sais pas comme gérer ça.

    Pourriez-vous m'aider?

    Merci d'avance!

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    Codez un déclencheur sur la table 1 qui ira renseigner la table de jointure.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 117
    Points : 92
    Points
    92
    Par défaut
    Merci SQLPro d'avoir répondu aussi rapidement,

    Je suppose que vous parlez de la fonction TRIGGER?

    Auriez-vous un exemple pour utiliser cette fonction.

    Merci d'avance!

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    Un déclencheur n'est ni une fonction ni une procédure. C'est un trigger. Autrement dit une routine de code qui se déclenche (d'ou son nom) sur un événement particulier. Contrairement à une fonction ou une procédure on ne peut pas la lancer manuellement ni lui passer des paramètres.

    je veut bien vous donnez un exemple quand vous respecterez la charte de postage en postant de vraies tables sous forme SQL DDL aindi qu'un jeu d'essais et non des truc bidon du style table1 table2...
    http://www.developpez.net/forums/d96...er/#post983302

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 117
    Points : 92
    Points
    92
    Par défaut
    Merci de votre réponse aussi direct. Au moins ça évite des "mal-entendus".

    Je pensais être plus compréhensible en donnant des noms comme 'table1'...

    Et malheureusement, je ne savait crée le DLL que vous avez dit car je suis un vrai débutant sur MS SQL SERVER.

    Merci de votre aide!!
    A++

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 117
    Points : 92
    Points
    92
    Par défaut
    Bonjour,

    Pour les gens qui ont le même problème que moi, je suis pas loin de la solution:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TRIGGER TriggerTest //Nom du trigger => 
    ON table1
    AFTER INSERT 
    AS 
    BEGIN 
        INSERT INTO table_jointure_1_et_2
    VALUES('1', '1') 
    END 
     
    GO
    Reste à trouver le moyen pour récupérer les ID'S Insérer dans mes deux tables.

    Je posterais le résultat dès que j'aurais réussi.

    Entre temps si quelqu'un à une proposition je suis bien preneur!

    Merci! A+

  7. #7
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    à l'intérieur du trigger, vous disposez des tables virtuelles INSERTED et DELETED.
    Ces tables ont la même structure que la table qui porte le trigger et contiennent respectivement les données insérées et supprimées.

    Vous pouvez donc trouver les ID insérés dans la table INSERTED :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE TRIGGER TriggerTest //Nom du trigger =>
    ON table1
    AFTER INSERT
    AS
    BEGIN
    INSERT INTO table_jointure_1_et_2
        SELECT id , 1
        FROM INSERTED
    END

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Esri avec une base de donnée SQL Server
    Par solaar dans le forum SIG : Système d'information Géographique
    Réponses: 2
    Dernier message: 27/03/2013, 14h00
  2. Connecter vb6 avec une base de données sql server 2005
    Par benhmou dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 14/03/2012, 08h59
  3. [PDF] Remplir un formulaire PDF avec une base de données
    Par psgkiki dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 31/03/2009, 16h40
  4. Réponses: 9
    Dernier message: 28/04/2008, 18h34
  5. Probleme de connexion avec une base de données SQL server
    Par lasvegas_parano dans le forum iReport
    Réponses: 29
    Dernier message: 19/07/2007, 10h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo