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

PHP & Base de données Discussion :

héritage et requête [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 116
    Par défaut héritage et requête
    Bonjour, dans mon MCd, j'ai mis en place le mécanisme d'héritage pour une entité "Equipement".
    J'ai donc une entité mère "équipement " . J'ai 3 entités filles "serveur" "switch" et "contrôleur" qui hérité de l'entité mère.

    Au niveau des tables, ça me donne :

    Equipement (id_equipement , nom_equipement, date_installation, statut, note, commentaires)

    Switch(id_equipement,ports,debit)

    Serveur(id_equipement,fonction,format,bios)

    Controleur(id_equipement,interface)


    La question que je me pose, c'est comment est ce que je vais arriver à créer un serveur par exemple ....
    Etant donné que je vais de voir renseigner la table équipement et la table serveur, faut il créer une jointure entre ces tables ?

    Il ne va pas y avoir de problème pour que j'insère le nom, la date d'installation, le statut, une note, et un commentaire mais comment est ce que je vais pouvoir insérer la fonction , le format et le bios qui est propre à la table serveur ....


    Est ce possible déjà d'effectuer cette requête ? ou faut il que je fasse 2 requête insert into ... ? (sachant que je vais utiliser le langage PHP par la suite)


    Merci de votre aide !

  2. #2
    Membre émérite Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Par défaut
    Bonjour,

    Je crois bien qu'il n'y a pas le choix.
    Il faut faire 2 requêtes d'insertion.

    - Insertion dans la table Equipement
    - Récupération du dernier idenntifiant auto-incrémenté généré
    - Insertion dans la table Serveur

    Pour la deuxième étape vous pourrez utiliser la fonction PHP:
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $equipement_id= mysql_insert_id();
    Equivalent de la requête:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT LAST_INSERT_ID();

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 116
    Par défaut
    Pour être un peu plus précis, voici la structure de mes tables équipement (table mère) et des 3 filles (switch, controleur, et serveur )....

    Ma question est, par quel moyen je vais être capable de créer un serveur , un switch ou un controleur réseau grâce à une insertion SQL et du langage PHP ??


    Merci de vos réponses ....



    /*==============================================================*/
    /* Table : EQUIPEMENTS */
    /*==============================================================*/
    create table EQUIPEMENTS
    (
    ID_EQUIPEMENT int not null,
    ID_TYPE_EQUIPEMENT int not null,
    ID_MODELE int not null,
    ID_SOCIETE int not null,
    NOM_EQUIPEMENT varchar(30),
    DATE date,
    STATUT int,
    COMMENT varchar(300),
    NOTE varchar(200),
    primary key (ID_EQUIPEMENT)
    );



    /*==============================================================*/
    /* Table : SERVEUR */
    /*==============================================================*/
    create table SERVEUR
    (
    ID_EQUIPEMENT int not null,
    FONCTION varchar(40),
    FORMAT int,
    BIOS varchar(40),
    primary key (ID_EQUIPEMENT)
    );


    /*==============================================================*/
    /* Table : SWITCH */
    /*==============================================================*/
    create table SWITCH
    (
    ID_EQUIPEMENT int not null,
    PORTS int,
    DEBIT int,
    primary key (ID_EQUIPEMENT)
    );


    /*==============================================================*/
    /* Table : CONTROLEUR */
    /*==============================================================*/
    create table CONTROLEUR
    (
    ID_EQUIPEMENT int not null,
    INTERFACE int,
    DEBIT int,
    primary key (ID_EQUIPEMENT)
    );

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 116
    Par défaut
    - Insertion dans la table Equipement
    - Récupération du dernier idenntifiant auto-incrémenté généré
    - Insertion dans la table Serveur
    Est ce qu tu pourrais être un peu plus précis ??

    J'ai essayé de faire un petit script PHP pour tester tout ça ...et le résultat est toujours 0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    mysql_connect("localhost", "root", "")or exit(mysql_error()); // Connexion à MySQL
    mysql_select_db("test")or exit(mysql_error()); // Sélection de la base
     
     
     
    ?>
     
     
    <?php
    //insertion d'un équipement
    $select = "INSERT INTO equipements (ID_EQUIPEMENT,ID_TYPE_EQUIPEMENT,ID_MODELE,ID_SOCIETE,NOM_EQUIPEMENT,DATE,STATUT,COMMENT,NOTE) VALUES ('32', '1', '1', '1', 'serveur 1', '2009-09-15', '1', 'RAS', 'RAS')";
     
    $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
     
    $equipement_id= mysql_insert_id();
    echo $equipement_id;
    ?>
    Résultat :

    J'ai oublié quelques chose ??

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 116
    Par défaut
    J'ai trouvé mon errreur, c'est bon ,j'avais oublié de mettre id_equipement en auto increment ...

    Dsl pour le post précédent ...je continue mon script

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 116
    Par défaut
    Tout est Ok, ça marche, si ça peut aider quelqu'un voici mon script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
    //insertion d'un équipement
    $select = "INSERT INTO equipements (ID_TYPE_EQUIPEMENT,ID_MODELE,ID_SOCIETE,NOM_EQUIPEMENT,DATE,STATUT,COMMENT,NOTE) VALUES ('1', '1', '1', 'serveur 1', '2009-09-15', '1', 'RAS', 'RAS')";
     
    $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
     
    $equipement_id= mysql_insert_id();
    echo $equipement_id;
     
    $select2 = "INSERT INTO serveur (ID_EQUIPEMENT,FONCTION,FORMAT,BIOS) VALUES ('$equipement_id', 'AD', '1', '2.2')";
    $result2 = mysql_query($select2) or die ('Erreur : '.mysql_error() );
     
     
     
     
     
    ?>

    Merci pour tout

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

Discussions similaires

  1. [HQL] Héritage et requête HQL
    Par deape dans le forum Hibernate
    Réponses: 3
    Dernier message: 07/05/2012, 15h29
  2. [JPQL] Question sur une requête avec héritage
    Par saveriu dans le forum JPA
    Réponses: 1
    Dernier message: 21/08/2010, 08h54
  3. Héritage et requètes SQL
    Par Daikyo dans le forum SQL
    Réponses: 4
    Dernier message: 11/06/2008, 08h23
  4. héritage dans une requète sql
    Par 080983 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/08/2007, 17h21
  5. [héritage] requête sur classe fille
    Par Galak extra dans le forum Hibernate
    Réponses: 3
    Dernier message: 25/08/2006, 10h30

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