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

Doctrine2 PHP Discussion :

Écrire une requête


Sujet :

Doctrine2 PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut Écrire une requête
    Bonjour,

    je débute en doctrine 2.
    je voudrais réaliser cette requête : (testé et qui fonctionne dans mySql)
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT g.* 
    FROM gallery g, list_gallery lg 
    WHERE g.id = lg.gallery_id

    j'ai procédé ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
                $query = $em
                ->createQueryBuilder('g','lg')      
                ->select('g.*')
                ->from('gallery', 'g')
                ->from('list_gallery', 'lg')
                ->where('g.id = lg.gallery_id')                  
                ->getQuery();
    seulement j'obtiens cette erreur :
    [Semantical Error] line 0, col 16 near 'gallery g, list_gallery': Error: Class 'gallery' is not defined.

    [2/2] QueryException: [Semantical Error] line 0, col 16 near 'gallery g, list_gallery': Error: Class 'gallery' is not defined. -+
    [1/2] QueryException: SELECT g.* FROM gallery g, list_gallery lg WHERE g.id = lg.gallery_id

  2. #2
    Membre émérite
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2011
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2011
    Messages : 477
    Par défaut
    Salut,

    As tu trouvé une réponse ?

    gallery et list_galery sont deux tables ?

    Si oui, je pense qu'il faut que tu passes par les jointures. et que tu fasses ta requête dans un repository.

    Bon dev

  3. #3
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    salut ,

    non j'ai pas trouvé.
    ce que je trouve insensé c'est que je récupère la requête généré par doctrine et que je le lance directement dans ma base et ça marche j'obtiens un résultat.

    j'ai essayé les jointures mais en vain.



    donc j'utilise une autre solution de remplacement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            $stmt = $this->getEntityManager()
            ->getConnection()
            ->prepare('SELECT g.* FROM gallery g, list_gallery lg WHERE ( g.id=lg.gallery_id)');        
            $stmt->execute();
     
            return $stmt->fetchAll();

  4. #4
    Membre éclairé Avatar de FadeToBlack
    Homme Profil pro
    ...
    Inscrit en
    Août 2010
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : ...
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2010
    Messages : 321
    Par défaut
    Salut,

    Ta requete fonctionne sans doute mais n'est pas "correcte" d'un point de vue SQL. Comme le dit stephan.78, le mieux est de faire une requête avec jointure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select .... from XXX
    join YYY on id.XXX = IdX_YYY

  5. #5
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    ok je vais poursuivre avec une jointure.

    à vous 2

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

Discussions similaires

  1. écrire une requête
    Par zhebulonn dans le forum Langage SQL
    Réponses: 12
    Dernier message: 26/04/2011, 11h00
  2. Besoin d'aide pour écrire une requête SQL
    Par tompintures dans le forum Requêtes
    Réponses: 2
    Dernier message: 31/01/2011, 10h47
  3. Besoin d'aide pour écrire une requête
    Par Jean-Marc68 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/10/2009, 19h54
  4. Réponses: 1
    Dernier message: 26/08/2008, 14h26
  5. Aide pour écrire une requête complexe
    Par julienbdx dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/11/2005, 16h58

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