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 :

petit probleme dans une requete


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2013
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2013
    Messages : 94
    Points : 44
    Points
    44
    Par défaut petit probleme dans une requete
    bonjour,

    voici j ai un je dois rechercher des valeurs dans ma base de données , je les ai bien prise mais pas dans le bonne ordre et en multiple voici mon code et ce que cela me donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $stid = oci_parse($conn, "SELECT FUNCTION_NAME_EN, BODY_NAME_EN FROM BODY, FUNCTION WHERE FUNCTION_ID IN (select ROLE_FUNCTION_ID_FK from role where role_member_id_fk=".$var.") AND BODY_ID IN( select ROLE_BODY_ID_FK from role where role_member_id_fk=".$var." ) order by function_id");
    Vice-Chair Human Rights
    Vice-Chair Afghanistan
    Vice-Chair Bosnia and Herzegovina, Kosovo
    Vice-Chair Kristdemokraterna
    Vice-Chair Foreign Affairs
    Vice-Chair Transport and Tourism
    Member Human Rights
    Member Kristdemokraterna
    Member Transport and Tourism
    Member Afghanistan
    Member Foreign Affairs
    Member Bosnia and Herzegovina, Kosovo
    Substitute Foreign Affairs
    Substitute Transport and Tourism
    Substitute Bosnia and Herzegovina, Kosovo
    Substitute Kristdemokraterna
    Substitute Afghanistan
    Substitute Human Rights

    et voici ce que je dois obtenir

    Nom : goooodprooo.png
Affichages : 90
Taille : 7,9 Ko

    Merci pour votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as demandé un classement par "function_id", c'est ce que tu obtiens.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2013
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2013
    Messages : 94
    Points : 44
    Points
    44
    Par défaut
    oui mais pourquoi je l ai 6 fois et pas une fois par organes??

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    sans connaitre la structure exacte ni les RELATIONS entre tables...

    A supposer que "FUNCTION_ID" soit le joint, essaie en remplaçant :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    FROM BODY, FUNCTION
    par
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FROM BODY B
    INNER JOIN FUNCTION F
    ON B.FUNCTION_ID = F.FUNCTION_ID

    N.B. Je ne suis pas sûr que le choix des noms des tables soit très judicieux...
    Attention aux noms réservés.
    Dernière modification par Invité ; 05/10/2015 à 18h27.

  5. #5
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2013
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2013
    Messages : 94
    Points : 44
    Points
    44
    Par défaut
    je vais te fournir les tables car je pense aussi j ai un problème de jointure ROLE BODYTYPE ET BODY

    Nom : bodytab.png
Affichages : 73
Taille : 22,8 Ko
    Nom : bodytypetab.png
Affichages : 63
Taille : 11,5 Ko
    Nom : roletab.png
Affichages : 63
Taille : 16,9 Ko

    voici deja 3
    Images attachées Images attachées   

  6. #6
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2013
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2013
    Messages : 94
    Points : 44
    Points
    44
    Par défaut
    et voici les 2 autres FUNCTION ET MEMBER

    Nom : functiontab.png
Affichages : 62
Taille : 11,6 KoNom : membertab.png
Affichages : 71
Taille : 22,5 Ko

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bon.

    ROLE semble être la table relationnelle :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FROM BODY B
    INNER JOIN ROLE R
      ON B.BODY_ID = R.ROLE_BODY_ID_FK
    INNER JOIN FUNCTION F
      ON F.FUNCTION_ID = R.ROLE_FUNCTION_ID_FK

    N.B. Comme tu peux voir à la coloration syntaxique, "FUNCTION" est un très mauvais nom pour une table... car c'est un mot réservé en SQL !



    Du coup, il vaut mieux le mettre entre séparateurs `:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FROM `BODY` B
    INNER JOIN `ROLE` R
      ON B.BODY_ID = R.ROLE_BODY_ID_FK
    INNER JOIN `FUNCTION` F
      ON F.FUNCTION_ID = R.ROLE_FUNCTION_ID_FK

  8. #8
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2013
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2013
    Messages : 94
    Points : 44
    Points
    44
    Par défaut
    merci beaucoup pour ta reponse mais j'ai encore un petit soucis ,

    ma variable est un $_GET(qui va prendre le MEMBER_ID du député ) que je suis obligé de prendre pour afficher les bon role au bon Député

    ou il va se placer dans se code ??

    j ai essayé comme ceci mais elle n est pas valide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $stid = oci_parse($conn, "SELECT FUNCTION_NAME_EN, BODY_NAME_EN FROM FROM `BODY` B INNER JOIN `ROLE` R ON B.BODY_ID = R.ROLE_BODY_ID_FK INNER JOIN `FUNCTION` F ON F.FUNCTION_ID = R.ROLE_FUNCTION_ID_FK where role_member_id_fk=".$var);
    Merci

  9. #9
    Invité
    Invité(e)
    Par défaut
    Il faut respecter la casse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    R.ROLE_MEMBER_ID_FK=".$var
    Sinon, quel est précisément le message d'erreur ?

  10. #10
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2013
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2013
    Messages : 94
    Points : 44
    Points
    44
    Par défaut
    voici l erreur

    Warning: oci_execute(): ORA-00903: invalid table name in R:\wamp\www\Projet\ProfilMember.php on line 88
    donc de ces 2 la

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $stid = oci_parse($conn, "SELECT FUNCTION_NAME_EN, BODY_NAME_EN FROM FROM `BODY` B INNER JOIN `ROLE` R ON B.BODY_ID = R.ROLE_BODY_ID_FK INNER JOIN `FUNCTION` F ON F.FUNCTION_ID = R.ROLE_FUNCTION_ID_FK WHERE R.role_member_id_fk=".$var);
    oci_execute($stid);

  11. #11
    Invité
    Invité(e)
    Par défaut
    Il suffit de traduire.

    "Invalid table name" -> "Nom de table invalide".

    Du coup, malgré ce que j'ai dit ici, il semble qu'il n'est pas suffisant de mettre des ``.


    N.B. Prends de bonne habitudes : ajoute un préfixe aux noms de tes tables.
    Tu ne seras plus embêté.

    Ex. :
    • T_BODY
    • T_FUNCTION
    • T_......
    Dernière modification par Invité ; 06/10/2015 à 16h57.

  12. #12
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2013
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2013
    Messages : 94
    Points : 44
    Points
    44
    Par défaut
    je pense que changer la table en question serais un peu dur de mon coté ,

    je dois reécrire un programme programme qui a été écrit en flex donc j ai deja toute la structure de la table,

    et comme je suis stagiaire et que mon responsable ne veut surtout pas que je touche a la table je suis un peu bloqué la ...

  13. #13
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2013
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2013
    Messages : 94
    Points : 44
    Points
    44
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BODY_NAME_EN FROM FROM `BODY` B
    double 'FROM'

    autant pour moi désolé merci en tout cas cela fonction super bien mtn je vais me basé sur votre code pour mettre le reste

    RESOLUE

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

Discussions similaires

  1. [Requête] Problème dans une requête analyse croisée
    Par drthodt dans le forum Requêtes et SQL.
    Réponses: 20
    Dernier message: 29/09/2006, 10h27
  2. [XPath] Probleme dans une requete XPath
    Par kalmless21 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 03/07/2006, 22h22
  3. probleme dans une requete de suppression
    Par iam dans le forum Bases de données
    Réponses: 3
    Dernier message: 03/07/2006, 11h11
  4. petit probleme dans une requte POSTGRE SQL
    Par ghis le fou dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/09/2003, 13h51

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