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 :

probleme dans une requete


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    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
    Par défaut probleme dans une requete
    bonjour,

    voici j'ai un petit probleme avec mon code, il n affiche pas ce que je veux afficher

    je voudrais afficher tout les pays qui sont dans l'organe que je selectionne mais il m affiche tout les pays malheureusement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'SELECT DISTINCT COUNTRY_NAME_EN FROM COUNTRY, ROLE WHERE ROLE_BODY_ID_FK ='.$tmp2.' ORDER BY COUNTRY_NAME_EN';
    $tmp2 = 3949(l id d'un body)

    c est certainement une erreur de logique mais est ce quelqu un peu m aider SVP voici en annexe mes tables

    Nom : bodytab.png
Affichages : 190
Taille : 22,8 KoNom : functiontab.png
Affichages : 150
Taille : 11,6 KoNom : membertab.png
Affichages : 153
Taille : 22,5 Ko
    Nom : bodytab.png
Affichages : 190
Taille : 22,8 KoNom : roletab.png
Affichages : 147
Taille : 16,9 Ko


    et mon but c est d avoir juste en tete les noms des pays(qui sont pas en shadow mais avec un hover on les voit )

    l image ici est le tableau de (budgets (member_ID :3949))

    Nom : montreru.png
Affichages : 157
Taille : 27,5 Ko

  2. #2
    Invité
    Invité(e)
    Par défaut
    A toi de connaitre les relations entre les différentes tables...

  3. #3
    Membre confirmé
    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
    Par défaut
    et bien la est le soucis je connais mais dans ma logique que je veux

    je prend le nom du pays tant que ROLE_BODY_ID_FK ='.$tmp2.'

    mais c est un probleme de logique la car il me trie pas comme il faut et je veux commencer par l entete des noms de pays obligatoirement

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations forums :
    Inscription : Juillet 2012
    Messages : 200
    Par défaut
    Bonjour. Il est logique que la requête renvoie tous les pays, vous avez faits un produit cartésien et non une jointure.
    Le code correct est, je crois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT DISTINCT
            COUNTRY_NAME_EN
    FROM
            COUNTRY NATURAL INNER JOIN ROLE
    WHERE
            ROLE_BODY_ID_FK = ?
    ORDER BY
            COUNTRY_NAME_EN
    PS : pensez à utiliser une requête preparée. C'est moi quand vous devez exécuter plusieurs fois une même requête avec des paramètres différents.

  5. #5
    Membre confirmé
    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
    Par défaut
    merci pour ta reponse mais j ai un soucis clé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'SELECT DISTINCT COUNTRY_NAME_EN FROM COUNTRY NATURAL INNER JOIN ROLE WHERE ROLE_BODY_ID_FK ='.$tmp2.' ORDER BY COUNTRY_NAME_EN';
    Warning: oci_execute(): ORA-00905: missing keyword in R:\wamp\www\Projet\Bodies.php on line 10

    et je ne sais pas d ou vient le probleme

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations forums :
    Inscription : Juillet 2012
    Messages : 200
    Par défaut
    EDIT : quelle version d'Oracle utilisez-vous ?
    Après une petite recherche sur l'erreur ORA-00905, j'ai appris que cette erreur est reliée à la clause NATURAL INNER JOIN...
    Essayez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT DISTINCT
            COUNTRY_NAME_EN
    FROM
            COUNTRY INNER JOIN ROLE USING(<Nom de(s) colonne(s) commune(s) aux deux tables>)
    WHERE
            ROLE_BODY_ID_FK = ?
    ORDER BY
            COUNTRY_NAME_EN

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

Discussions similaires

  1. probleme dans une requete mysql
    Par mohamed11000 dans le forum Requêtes
    Réponses: 6
    Dernier message: 26/04/2013, 17h34
  2. [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
  3. [XPath] Probleme dans une requete XPath
    Par kalmless21 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 03/07/2006, 22h22
  4. probleme dans une requete de suppression
    Par iam dans le forum Bases de données
    Réponses: 3
    Dernier message: 03/07/2006, 11h11

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