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

Requêtes MySQL Discussion :

requetes qui ne veut pas passer


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 268
    Points : 175
    Points
    175
    Par défaut requetes qui ne veut pas passer
    bonjour,

    voila j'ai quelques requetes a lancer sur une base de donnée mysql, j'ai deja fait des requetes sous oracle et ca marchaient mais la je ne sais pas ce qui ne va pas voici ma requete :

    donc : switch , port , mac , vitesse , mode , etat_admin , operstatus sont des tables.
    et nom_switch, numport, adresse_mac, vitesses, modes, etatadmin, oper sont des champs de mes tables.

    select nom_switch, numport, adresse_mac, vitesses, modes, etatadmin, oper
    from switch s, port p, mac m, vitesse v, mode mo, etat_admin e, operstatus o
    where s.id_switch=p.id_switch
    and p.id_port=m.id_port
    and p.id_port=v.id_port
    and p.id_port=mo.id_port
    and p.id_port=e.id_port
    and p.id_port=o.id_port;
    savez vous ce qui ne va pas??? merci beaucoup de votre aide c'est pour mon projet mardi et la j'ai vraiment du mal.

    MERCI BEAUCOUP.

  2. #2
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    and what is the error message?
    merci beaucoup, pourtant j'aime bien les devinettes d'habitude....

  3. #3
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 268
    Points : 175
    Points
    175
    Par défaut
    en faite il me met aucune erreur mais il m'affiche rien du tout

  4. #4
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    mets en pièce jointe le code de tes tables
    fais tu cette requete directement sur la base? ou l'exécutes-tu dans un programme? si dans un programme mets nous ton code.
    A quoi t'attends tu comme résultat?
    tu as testé la récup de données d'un seul switch en donnant son id dans la requete?
    plus d'infos SVP

  5. #5
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Salut,

    Comme ce sont des jointures internes il suffit qu'une table n'ait pas de correspondance dans la table suivante pour que la requête capote et ne retourne rien.

    Teste les jointures une par une (switch s, port p ; switch s, port p, mac m ; switch s, port p, mac m, vitesse v ...) pour voir où ça coince.
    Pensez au bouton

  6. #6
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 268
    Points : 175
    Points
    175
    Par défaut
    voici ma création de table qui fonctionne mais je ne comprend pas pourquoi quand je regarde dans la table port et dans les clés secondaire je 'nai rien du tout que la valeur 0 qui est par defaut ca doit être pour ca que je ne peux pas faire mes jointures.

    savez vous ce qui ne va pas?

    merci


    create table switch
    (
    id_switch integer(5) not null auto_incremente,
    nom_switch varchar(15) ,
    constraint pk_switch primary key (id_switch)
    );


    create table operstatus
    (
    id_oper integer(5) not null auto_incremente,
    operstatus varchar(15) ,
    constraint pk_operstatus primary key (id_oper)
    );

    create table vitesse
    (
    id_vitesse integer(5) not null auto_incremente,
    vitesse varchar(15) ,
    constraint pk_vitesse primary key (id_vitesse)
    );

    create table etat_admin
    (
    id_admin integer(5) not null auto_incremente,
    etat_admin varchar(15) ,
    constraint pk_etat_admin primary key (id_admin)
    );


    create table mode
    (
    id_mode integer(5) not null auto_incremente,
    mode varchar(15) ,
    constraint pk_mode primary key (id_mode)
    );

    create table port
    (
    id_port integer(5) not null auto_incremente,
    port varchar(15) ,
    id_switch integer(5) not null,
    id_oper integer(5) not null,
    id_vitesse integer(5) not null,
    id_etat_admin integer(5) not null,
    id_mode integer(5) not null,
    constraint pk_port primary key (id_port),
    constraint fk_port_switch foreign key (id_switch) references switch (id_switch),
    constraint fk_operstatus_port foreign key (id_oper) references operstatus (id_oper),
    constraint fk_vitesse_port foreign key (id_vitesse) references vitesse (id_vitesse),
    constraint fk_etat_admin_port foreign key (id_admin) references etat_admin (id_admin),
    constraint fk_mode_port foreign key (id_mode) references mode (id_mode)
    );


    create table mac
    (
    id_mac integer(5) not null auto_incremente,
    adresse_mac varchar(15) ,
    id_port integer(5) not null,
    constraint pk_mac primary key (id_mac),
    constraint fk_mac_port foreign key (id_port) references port (id_port)
    );

  7. #7
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    tu les remplis comment tes tables?

  8. #8
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 268
    Points : 175
    Points
    175
    Par défaut
    je l'ai rempli via un script en php tout se rempli bien sauf avec les clés secondaire et je ne sais pas pourquoi.

  9. #9
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    et j'imagine que tu as bien vérifié dans ton code php que toutes les valeurs que tu veux insérer sont bien définies(tes clefs secondaires).
    si tu veux de l'aide postes ton code qui est susceptible de poser problème....mais avant tout, fais afficher toutes les variables que tu utilises dans tes requetes pour voir ce qu'elles contiennent.
    Bon courage

  10. #10
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 268
    Points : 175
    Points
    175
    Par défaut
    les variables qui me posent problème sont les clés primaire que j'ai mis en not null auto_incremente,

    et dans mes tables qui utilisents les clées etrangaires en contrainte il me met valeur defaut 0 il me recupere pas les valeurs de la table.

    Par exemple :

    j'ai la table port avec l'identifiant ( clés primaire) qui est : id_port: la valeur que id_port va prendre vu que c'est de l'auto_increment ca sera 1, 2, 3, 4 etc..

    puis j'ai une table vitesse avec l'identifiant ( clés primaire) qui est : id_vitesse, puis elle a une clés étrangere ( foreign key ) qui est id_port references port ( id_port), sauf que cette valeur au lieu d'être la meme que dans la table port, les valeurs sont que des0.

    lors de la création de table vitesse, c'est écrit en valeur par defaut 0 et l'auto_increment ne veut pas se mettre .

    Ca ne viendrait pas de ca??

  11. #11
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    rien compris.
    si tu rentres des trucs "à la main dans la table vitesse", ça fonctionne ou non :
    - le champs auto-incrémenté s'incrémente ou non?
    - le champs étant clé étrangère génère une erreur si tu lui rentres une valeur qui n'existe pas dans le champs de référence?

  12. #12
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Je ne suis pas sur d'avoir tout compris ce que tu as fais mais
    - Si tes foreign keys sont à 0 c'est sur qu'au niveau de ta jointure il va rien retrouver.

    Tu te contredis entre tes explications et ton code de creation des tables. Dans ton code c'est la table port qui possède la foreign key sur vitesse. Et elle n'est pas en auto-incremente.
    Si tu mets la clef primaire de vitesse en auto-incremente, ça ne mettra pas à jour tout seul le champ lié dans la table port.

    Montre nous tes requetes d'insertion de données, à mon avis l'explication va arriver toute seule.
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  13. #13
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 268
    Points : 175
    Points
    175
    Par défaut
    $sq = 'INSERT INTO port(nom_port) VALUES('.$index.');';
    $sql = 'INSERT INTO vitesse ( vitesse ) VALUES ( '.$b.');';
    $sql1 = 'INSERT INTO mode(mode) VALUES('.$c.' );';
    $sql2 = 'INSERT INTO etat_admin(etat_admin) VALUES("'.$e.'" );';
    $sql3 = 'INSERT INTO operstatus(operstatus) VALUES("'.$f.'" );';
    $sql4 = 'INSERT INTO mac(adresse_mac) VALUES("'.$hex.'" );';

    $re = mysql_query($sq) or die('Erreur SQL !<br>'.$sq.'<br>'.mysql_error());
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    $req1 = mysql_query($sql1) or die('Erreur SQL !<br>'.$sql1.'<br>'.mysql_error());
    $req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());
    $req3 = mysql_query($sql3) or die('Erreur SQL !<br>'.$sql3.'<br>'.mysql_error());
    $req4 = mysql_query($sql4) or die('Erreur SQL !<br>'.$sql4.'<br>'.mysql_error());
    voici mes requetes d'insertion

  14. #14
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    mais tu n'insères jamais tes clés étrangères?!!!???
    décidément j'y comprend rien!!!
    cette requete est fausse : on met des quotes simples pour les valeurs à insérer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql3 = 'INSERT INTO operstatus(operstatus) VALUES("'.$f.'" );';
    devrait être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql3 = 'INSERT INTO operstatus(operstatus) VALUES(\''.$f.'\' );';
    confirmation?

  15. #15
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Tes champs de ta table port ne vont pas se remplir tout seul pour la simple raison que tu as fait des foreign keys. Idem pour la table mac.
    Tu dois d'abord remplir tes petites tables
    Puis récuperer les id et remplir ta table port
    Puis récuperer l'id et remplir ta table mac.

    Les foreign keys sont la pour t'eviter de faire des betises mais à ma connaissance ne font pas tout le travail à ta place
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

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

Discussions similaires

  1. Requete paramétré qui ne veut pas prendre de paramètre
    Par guigui5931 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 25/11/2006, 14h27
  2. [JScrollPane] qui ne veut pas se mettre en haut a gauche
    Par Cyber@l dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 24/11/2006, 10h41
  3. JOptionPane qui ne veut pas se fermer!
    Par benthebest dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 29/12/2005, 22h05
  4. un fichier qui ne veut pas être supprimé!!!!
    Par en_stage dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 22/10/2005, 01h08
  5. [PL/SQL] requete qui marche mais pas dans un cursor
    Par victor.ward dans le forum Langage SQL
    Réponses: 3
    Dernier message: 09/09/2005, 22h21

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