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 :

Problème de requête sous Linux


Sujet :

PHP & Base de données

  1. #21
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Par défaut
    Voici les deux requêtes envoyées au serveur:
    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
    SELECT count(*) 
    FROM carte AS c 
    INNER JOIN infocarte AS i ON i.inf_id = c.id 
    INNER JOIN equipement AS e ON c.nom_equip = e.nom_equip 
    INNER JOIN possede AS p ON e.nom_equip = p.nom_equip 
    WHERE i.libelle = 'Module Service IF' 
    AND e.type_equip = 'ne1660sm' 
    AND p.ui = 'ALPES'
     
    SELECT e.type_equip, e.nom_equip, p.nom_topo 
    FROM equipement AS e 
    INNER JOIN possede AS p ON e.nom_equip = p.nom_equip 
    INNER JOIN carte AS c ON c.nom_equip = e.nom_equip 
    INNER JOIN infocarte AS i ON i.inf_id = c.id 
    WHERE i.libelle = 'Module Service IF' 
    AND p.ui = 'ALPES' 
    AND e.type_equip = 'ne1660sm' 
    ORDER BY e.type_equip, e.nom_equip, p.nom_topo
    En espérant que sa puisse aider

  2. #22
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    On peut voir l'entièreté du code ?

  3. #23
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Les requêtes semblent syntaxiquement correctes.
    S'il exste vraiment en BDD des données qui correspondent aux conditions, les tables utilisent-elles le même jeu de caractères ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #24
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Par défaut
    Je ne pense pas que l'intégralité du code soit utile puisque le problème semble se situer sur mes bases de données puisque même en exécutant ma requête sous PhpMyAdmin cela ne retourne rien.
    Pour répondre à Cinephil, il existe des données qui correspondent aux conditions, en ce qui concerne le jeu de caractères des tables je ne sais même pas comment on fait pour le connaître. Cela correspond à l'interclassement ? Si tel est le cas toutes possèdent le même

  5. #25
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    On peut avoir la description des tables ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SHOW CREATE TABLE nom_de_la_table
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #26
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Par défaut
    Voici donc mes quatre tables
    Tout d'abord la table carte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CREATE TABLE `carte` (
     `emplacement` varchar(100) NOT NULL DEFAULT '',
     `nom_equip` varchar(100) NOT NULL DEFAULT '',
     `libelle` varchar(60) NOT NULL DEFAULT '',
     `type_carte` varchar(50) NOT NULL DEFAULT '',
     `id` varchar(50) NOT NULL DEFAULT '',
     `indice` varchar(4) NOT NULL DEFAULT '',
     `serie` varchar(30) DEFAULT NULL,
     `date` text,
     `ncarte` int(50) NOT NULL AUTO_INCREMENT,
     PRIMARY KEY (`ncarte`),
     UNIQUE KEY `EMPLACEMENT` (`emplacement`,`serie`,`nom_equip`),
     KEY `CONTIENT_FK` (`nom_equip`)
    ) ENGINE=MyISAM AUTO_INCREMENT=68947 DEFAULT CHARSET=latin1
    Vient ensuite la table equipement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE `equipement` (
     `nom_equip` varchar(100) NOT NULL DEFAULT '',
     `type_equip` varchar(50) DEFAULT NULL,
     `version` varchar(100) DEFAULT NULL,
     `constructeur` varchar(30) NOT NULL DEFAULT '',
     `num_equip` int(11) NOT NULL AUTO_INCREMENT,
     PRIMARY KEY (`num_equip`)
    ) ENGINE=MyISAM AUTO_INCREMENT=2715 DEFAULT CHARSET=latin1
    La table infocarte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE `infocarte` (
     `inf_id` varchar(50) NOT NULL DEFAULT '',
     `libelle` varchar(50) NOT NULL,
     `EAN` varchar(60) NOT NULL DEFAULT '',
     `SAP` varchar(60) NOT NULL DEFAULT '',
     `UVN` varchar(50) NOT NULL DEFAULT '',
     PRIMARY KEY (`inf_id`,`SAP`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    Et enfin la table possede
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE `possede` (
     `ui` varchar(100) NOT NULL,
     `nom_topo` varchar(100) NOT NULL,
     `nom_equip` varchar(100) NOT NULL,
     PRIMARY KEY (`nom_equip`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    J'espère que cela pourra t'aider Cinephil et que l'erreur vient bien de là
    D'ailleurs je me rend compte qu'il y a des choses que je ne comprend même pas.

  7. #27
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Citation Envoyé par DjiLow Voir le message
    Je ne pense pas que l'intégralité du code soit utile puisque le problème semble se situer sur mes bases de données puisque même en exécutant ma requête sous PhpMyAdmin cela ne retourne rien.
    Et dans phpMyAdmin ceci fonctionne ?
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM carte

  8. #28
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Par défaut
    Oui MaitrePylos les requêtes très simple comme celle-ci fonctionne elle me retourne bien le contenu intégral de ma table fort heureusement

  9. #29
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Dans ce cas on va décomposé ta requête et voir a partir de quand il ne retourne rien, il faut arrêter de tourner en rond pour rien.

    Lance les requêtes suivantes dans PhpMyAdmin et dis nous quand ça plante :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT e.type_equip, e.nom_equip
    FROM equipement AS e

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT e.type_equip, e.nom_equip, p.nom_topo 
    FROM equipement AS e 
    INNER JOIN possede AS p ON e.nom_equip = p.nom_equip

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT e.type_equip, e.nom_equip, p.nom_topo 
    FROM equipement AS e 
    INNER JOIN possede AS p ON e.nom_equip = p.nom_equip 
    INNER JOIN carte AS c ON c.nom_equip = e.nom_equip 
    INNER JOIN infocarte AS i ON i.inf_id = c.id

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT e.type_equip, e.nom_equip, p.nom_topo 
    FROM equipement AS e 
    INNER JOIN possede AS p ON e.nom_equip = p.nom_equip 
    INNER JOIN carte AS c ON c.nom_equip = e.nom_equip 
    INNER JOIN infocarte AS i ON i.inf_id = c.id 
    WHERE i.libelle = 'Module Service IF' 
    AND p.ui = 'ALPES'

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT e.type_equip, e.nom_equip, p.nom_topo 
    FROM equipement AS e 
    INNER JOIN possede AS p ON e.nom_equip = p.nom_equip 
    INNER JOIN carte AS c ON c.nom_equip = e.nom_equip 
    INNER JOIN infocarte AS i ON i.inf_id = c.id 
    WHERE i.libelle = 'Module Service IF' 
    AND p.ui = 'ALPES' 
    AND e.type_equip = 'ne1660sm' 
    ORDER BY e.type_equip, e.nom_equip, p.nom_topo

  10. #30
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Par défaut
    Alors en éxécutant les requêtes le blocage arrive au niveau de celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT e.type_equip, e.nom_equip, p.nom_topo 
    FROM equipement AS e 
    INNER JOIN possede AS p ON e.nom_equip = p.nom_equip 
    INNER JOIN carte AS c ON c.nom_equip = e.nom_equip 
    INNER JOIN infocarte AS i ON i.inf_id = c.id 
    WHERE i.libelle = 'Module Service IF' 
    AND p.ui = 'ALPES'
    Aucun enregistrement n'est retourné lors de l'exécution de cette requête.
    Bien entendu la dernière requête ne fonctionne pas non plus.

  11. #31
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    OK donc est-ce que tu retrouves bien intitulé 'Module Service IF' dans la requête suivante

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT libelle FROM infocarte

    de même que 'ALPES' en majuscule dans

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT ui FROM possede

  12. #32
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Quelques extraits...
    1) Table carte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE `carte` (
    ...
    `nom_equip` varchar(100) NOT NULL DEFAULT '',
    ...
    `id` varchar(50) NOT NULL DEFAULT '',
    ...
    `ncarte` int(50) NOT NULL AUTO_INCREMENT,
     PRIMARY KEY (`ncarte`),
    ...
    Comment se fait-il qu'il y ait un id de type varchar et un ncarte de type entier auto-incrémenté ?

    2) Table infocarte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TABLE `infocarte` (
     `inf_id` varchar(50) NOT NULL DEFAULT '',
    ...
    `SAP` varchar(60) NOT NULL DEFAULT '',
    ...
    PRIMARY KEY (`inf_id`,`SAP`)
    ...
    Des colonnes de type varchar en clé primaire, ce n'est pas optimum !

    3) Table equipement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE `equipement` (
     `nom_equip` varchar(100) NOT NULL DEFAULT '',
    ...
    `num_equip` int(11) NOT NULL AUTO_INCREMENT,
     PRIMARY KEY (`num_equip`)
    ...
    4) Table possede :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE `possede` (
    ...
    `nom_equip` varchar(100) NOT NULL,
    PRIMARY KEY (`nom_equip`)
    ...
    Idem pour la nom optimisation de la clé primaire, d'autant plus que vu son nom je suppose qu'il s'agit d'une table associative dont la clé primaire devrait être composée des identifiant des entités impliquées dans l'association.

    3) Ta première requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    FROM carte AS c 
    INNER JOIN infocarte AS i ON i.inf_id = c.id 
    INNER JOIN equipement AS e ON c.nom_equip = e.nom_equip 
    INNER JOIN possede AS p ON e.nom_equip = p.nom_equip
    Pourquoi les jointures se font-elle sur des colonnes de type varchar ?
    Elles devraient se faire sur des clés étrangères faisant référence à des identifiants de type entier auto-incrémentés.

    Si je lis bien ta structure, elle correspond au MCD (partiel) suivant :
    |------------------0,n----Associer----1,1- possède -----> ?
    Equipement -0,n----Contenir----1,1- Carte -0,n----Caractériser----1,1- InfoCarte -1,1----Associer----0,n- SAP

    La branche suivante :
    Carte -0,n----Caractériser----1,1- InfoCarte -1,1----Associer----0,n- SAP
    peut se transformer en ceci :
    Carte -0,n----InfoCarte----0,n- SAP

    Quant à 'possede', je ne suis plus très sûr que ce soit une table associative étant donné que sa clé primaire est mono-colonne sur un 'ui' de type VARCHAR.

    Quoiqu'il en soit, pour reprendre tes noms de tables et de colonnes, tu devrais plutôt avoir ceci :
    1) Table equipement
    Pour l'extrait de MCD ci-dessus c'est bon mais je vois aussi les colonnes type_equip et constructeur qui devraient être externalisées selon ce schéma :
    equipement -1,1----typer----0,n- type_equipement
    |-----------------1,1----construire----0,n- constructeur

    Ce qui donnerait les tables :
    constructeur (id_constructeur, nom_constructeur...)
    type_equipement (id_type_equip, libelle_type_equip...)
    equipement (num_equip, id_type_equip, id_constructeur, nom_equip, version)
    Avec des identifiants (id_X) de type entier non nul, non signé et autoincrémenté, et donc les clés étrangères (même si l'utilisation du moteur MyISAM empèche de bénéficier de leurs contraintes) de type entier non signé et de préférence non nul.

    2) Table carte
    On y trouve aussi un type_carte qui devrait être externalisé et je m'interroge sur l'externalisation potentielle de emplacement et de serie.
    Si 'id', de type varchar(30), contient en fait la référence de la carte, appelons cette colonne 'reference'.
    C'est une mauvaise idée d'appeler une colonne 'date' parce que c'est un mot du langage SQL. C'est la date de quoi ? Fabrication ? Mise en place dans l'équipement ? Achat ? A préciser dans le nom de la colonne.

    Ce qui donnerait au moins le MCD suivant :
    carte -1,1----typer----0,n- type_carte

    Et les tables :
    type_carte (id_type_carte, libelle_type_carte...)
    carte (ncarte, id_type_carte, id_equip, reference, libelle, emplacement, serie, indice, date_XXX_à preciser)

    3) Table infocarte
    Il semble donc que ce soit une table associative puisque sa clé primaire est composée de deux colonnes.
    A moins qu'il y ait une identification relative entre carte et infocarte et que SAP fasse le distinguo entre les jeux d'informations concernant une même carte.
    Je vais partir sur l'hypothèse de la table associative.
    infocarte (id_carte, id_SAP, libelle, EAN, UVN)
    Avec bien sûr des id_X de type entier non nuls et non signés.

    4) Table possede
    La clé primaire fait référence à l'équipement, on va donc supposer qu'il y a identification relative de l'équipement dans possede.
    possede (id_equip, ui, nom_topo)
    Si ui et/ou nom_topo font référence à autre chose d'externalisé ou externalisable, appliquer le même principe que ci-dessus.


    En gros, pour éviter les crash de performance, commencer par modéliser correctement la base de données.

    Ce que je supposais était une différence de type entre les colonnes faisant l'objet des conditions de jointure. Ce ne semble pas être le cas mais ce que j'ai vu dans la structure des tables n'est pas brillant quand même !

    Bon courage !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  13. #33
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Par défaut
    Nouvel élément
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT e.type_equip, e.nom_equip, p.nom_topo 
    FROM equipement AS e 
    INNER JOIN possede AS p ON e.nom_equip = p.nom_equip 
    INNER JOIN carte AS c ON c.nom_equip = e.nom_equip 
    INNER JOIN infocarte AS i ON i.inf_id = c.id 
    WHERE i.libelle = 'Module Service IF'
    Cette requête fonctionne, le problème se situe donc bien sur ma table possede
    Pourtant si je fais dans PhpMyAdmin
    Je retrouve bien l'élément ALPES

    Cinephil merci pour ta réponse mais tu me parlerais en chinois sa serait la même.
    Ton explication est surement très bien mais totalement incompréhensible pour moi ...

  14. #34
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par DjiLow Voir le message
    Cinephil merci pour ta réponse mais tu me parlerais en chinois sa serait la même.
    Ton explication est surement très bien mais totalement incompréhensible pour moi ...
    Alors un cours de modélisation Merise s'impose...
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  15. #35
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Le conseil de Cinephil est primordiale pour toi, tu ne peux modéliser si tu ne comprends pas ce que tu fais.

    Par contre juste une dernière chose, peux-tu faire les requêtes suiventes :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT e.type_equip, e.nom_equip, p.nom_topo,
    i.inf_id 
    FROM equipement AS e 
    INNER JOIN possede AS p ON e.nom_equip = p.nom_equip 
    INNER JOIN carte AS c ON c.nom_equip = e.nom_equip 
    INNER JOIN infocarte AS i ON i.inf_id = c.id 
    WHERE i.libelle = 'Module Service IF'

    tu récupères la valeur de i.inf_id

    et ensuite tu nous fais le select suivant

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT p.libelle
    FROM equipement AS e 
    INNER JOIN possede AS p ON e.nom_equip = p.nom_equip 
    INNER JOIN carte AS c ON c.nom_equip = e.nom_equip 
    INNER JOIN infocarte AS i ON i.inf_id = c.id 
    WHERE i.inf  = /*id récupéré*/
    Et dis nous si il y a ='ALPES'

  16. #36
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Par défaut
    Bonjour cela fait une semaine que j'ai pas posté de message mais j'ai pris le temps d'étudier le cours sur Merise. En revanche serait-il possible que quelqu'un m'aide à modéliser ma base de données afin que celle-ci soit correcte ?
    Merci d'avance

  17. #37
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Par défaut
    Je poste à nouveau et je met en fichier joint l'image de la structure de la base de données qui semble convenir à mes attentes.
    Serait-il possible de me dire si cela semble cohérent.
    Pour informations j'ai changé le nom de la table possede par le nom topologie
    Merci d'avance
    Images attachées Images attachées  

  18. #38
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Par défaut
    Je viens de créer ma BDD avec dbdesigner
    Je vous met l'image si cela peut vous aider à juger si ma création est bonne.
    En revanche pour l'enregistrement des données dans la base sa risque de me compliquer la tâche. Etant donné que j'importe directement des fichiers csv dans ma base cela va-t-il poser problème ? Ne faut-il pas un enregistrement simultané pour ce genre de structure ?
    Merci d'avance
    Images attachées Images attachées  

  19. #39
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    Voir ce sujet : http://www.developpez.net/forums/d86...o/#post4927380, le même contexte d'erreur.

    Sans réponse malheureusement...

  20. #40
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Attention dans tes tables tu multiplies la même information.

    Nom_equipement et libellé, tu dois pouvoir récupérer ces infos dans une seule table

Discussions similaires

  1. Problème erreurs sockets sous Linux
    Par Ange44 dans le forum Linux
    Réponses: 6
    Dernier message: 05/09/2006, 16h16
  2. Problème de portabilité sous Linux
    Par eG.dam dans le forum Linux
    Réponses: 4
    Dernier message: 23/06/2006, 23h06
  3. [WebService](SSL] Problème de SSL sous Linux
    Par Tueur_a_gage dans le forum JOnAS
    Réponses: 4
    Dernier message: 09/01/2006, 16h38
  4. [SNMP] Problème de requêtes sous Windows
    Par weib dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 30/11/2005, 19h00
  5. Problème avec glutFullScreen() sous linux...
    Par MaxPayne dans le forum OpenGL
    Réponses: 1
    Dernier message: 29/11/2004, 11h30

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