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 :

Création d'une rêquete SQL pure


Sujet :

Doctrine2 PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Par défaut Création d'une rêquete SQL pure
    Bonjour à tous,

    alors voila mon problème,
    je souhaite faire une requête avec une jointure entre 2 tables,
    or entre ces 2 tables il n'y a pas de clé étrangère donc doctrine est perdu (ou plutot moi )

    je voudrais donc faire une requete pure sql, j'ai cru comprendre qu'il fallait utiliser NativeQuery, j'ai regardé l'exemple et la doc suivante :
    http://doctrine-orm.readthedocs.org/...entity-results
    mais je comprends pas du tout

    donc 2 questions :
    1. CreateNativeQuery est-il la solution à mon problème ?
    je n'arrive pas à trouver un exemple qui donne le schéma des tables donc je comprends rien à ce qui est fait
    2. si oui, comment faire avec 2 tables "simples", genre :

    table User
    id_user (clé primaire)
    nom
    prenom

    table Voiture
    id_voiture (clé primaire)
    id_user
    marque
    modele

    je voudrais faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT User.*, Voiture.* FROM Voiture INNER JOIN User on Voiture.id_user = User.id_user
    voila, merci d'avance

  2. #2
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    table Voiture
    id_voiture (clé primaire)
    id_user
    marque
    modele
    Et id_user c'est quoi pour toi ?

    Sinon pour la jointure, je ferais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $req = Doctrine_Query::create()
            ->from('User u');
     
    $listeReq = $req->select('s.champ1, s.champ2 ..., v.champ1, v.champ2 ....)
            ->innerJoin('Voiture v')
            ->fetchArray();
    Pas besoin du on car Doctrine connait les relations entre les tables ET c là que je comprends plus
    je souhaite faire une requête avec une jointure entre 2 tables,
    or entre ces 2 tables il n'y a pas de clé étrangère donc doctrine est perdu (ou plutot moi )
    Comment tu crées ton shéma pour Doctrine ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Par défaut
    Merci pour ta réponse par contre
    c'est quoi ton s dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $listeReq = $req->select('s.champ1, s.champ2 ..., v.champ1, v.champ2 ....)
    moi c'est ca que je comprends pas :
    Pas besoin du on car Doctrine connait les relations entre les tables ET c là que je comprends plus
    justement, doctrine connait pas la relation (je crois) de ma jointure puisqu'elle n'est pas définie comme ca dans le schéma et donc dans les entités générées (automatiquement via un script php que j'avoue ne pas maitriser) ...

  4. #4
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    c'est quoi ton s dans :

    Code :Sélectionner tout - Visualiser dans une fenêtre à part$listeReq = $req->select('s.champ1, s.champ2 ..., v.champ1, v.champ2 ....)

    Euhhh c pas s, c'est u

    justement, doctrine connait pas la relation (je crois) de ma jointure puisqu'elle n'est pas définie comme ca dans le schéma et donc dans les entités générées (automatiquement via un script php que j'avoue ne pas maitriser) ...
    Précisement, j'utilise workbench sql pour faire mon shéma relationnel (téléchargement gratuit) puis un plugin de cette application me génère le shema.yml désiré pour doctrine ensuite tout roule et tu as bien toutes tes relations !! comme je pense que dans ton cas c pareil, non ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Par défaut
    ok,
    merci mais ma question c'est est-ce qu'on peut faire une requete Doctrine avec une jointure sans que les relations soient définies dans le schéma relationnel ...
    d'ou "sql pure"
    sinon les jointures définies dans le schéma je sais faire puisqu'en fait y a rien à faire

  6. #6
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    merci mais ma question c'est est-ce qu'on peut faire une requete Doctrine avec une jointure sans que les relations soient définies dans le schéma relationnel ...
    d'ou "sql pure"
    C'est pour celà que je comprennais pas non plus histoire de tourner en rond !!! mais dans un sens ta table Voiture a un id_user alors

    Mais pourquoi elle pas définie cette relation, c'est dommage et je ne vois pas comment Doctrine peut s'en sortir alors Au pire, tu fais du PDO par dessus (en plus pour ce cas, connexion, etc ...)comme ça, ça devrait le faire.

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/04/2009, 10h09
  2. affecter les resultats d'une rêquete SQL à une table
    Par soforan dans le forum Bases de données
    Réponses: 8
    Dernier message: 01/01/2009, 22h05
  3. problème de création d'une requête SQL
    Par crushilefou dans le forum Requêtes
    Réponses: 9
    Dernier message: 07/12/2007, 11h59
  4. Problème création d'une requete SQL (categorie,sous-cat)
    Par Raideman dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/11/2006, 15h23
  5. création d'une requete sql
    Par tounsi dans le forum Oracle
    Réponses: 15
    Dernier message: 22/02/2006, 16h12

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