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 :

Mon UNION ne fonctionne pas dans ma requête ?


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 70
    Points : 41
    Points
    41
    Par défaut Mon UNION ne fonctionne pas dans ma requête ?
    Bonjour, je n'arrive pas à faire fonctionner ma requête lorsque j'ajoute un UNION ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    try
    {
    	$bdd1 = new PDO('mysql:host=db2121.1and1.fr;dbname=db3441xxxxx', 'dbo3441xxxxx', 'passxxx');
    	$bdd2 = new PDO('mysql:host=db4545.1and1.fr;dbname=db3201yyyyy', 'dbo3201yyyyy', 'passxxx');
    }
    catch (Exception $e)
    {
            die('Erreur : ' . $e->getMessage());
    }
     
     
     
     
     
     
     
     
     
     
     
    $reponse1 = $bdd1->query('
    						SELECT date_commande, email, id, prixtotal, statut
    						FROM db3441xxxxx.commandes
    						UNION
    						SELECT date_commande, email, id, prixtotal, statut
    						FROM db3201yyyyy.bouille_commandes
    						ORDER BY id DESC
    						LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage
    						);
    $reponse1->setFetchMode(PDO::FETCH_ASSOC);

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour

    quel est votre message d'erreur ?

    Votre serveur a-t-il accès aux deux instances de base de données ?

    Avez vous essayé de lancer la requete directement sur le serveur (genre avec phpmyadmin ?)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 70
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Bonjour

    quel est votre message d'erreur ?

    Votre serveur a-t-il accès aux deux instances de base de données ?

    Avez vous essayé de lancer la requete directement sur le serveur (genre avec phpmyadmin ?)
    Salut, Mon message d'erreur est :
    Fatal error: Call to a member function query() on a non-object in /homepages/1/d191xxxxx/htdocs/admin/templates/admin.php on line 93

    Aussi je peu acceder a mes 2 bases de données, cependant mes bases étant auto administré chez 1&1 j'ai des noms de serveurs différents qu'on ne peu pas modifier.
    Sinon je ne comprend pas tres bien ce que veu dire lancer la requete directement sur le serveur comme je sui débutant :-(

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Visiblement ton problème ne vient pas de SQL , mais de PHP.

    verifie la doc de PDO, car visiblement ton $bdd1 n'est pas un objet, tu ne peux pas lui appliquer la methode query()

    essaie avec une requete simple, tu aura le même souci.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 70
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message

    essaie avec une requete simple, tu aura le même souci.
    si je retire les lignes suivantes de ma requete j'accede bien a la base1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UNION
    SELECT date_commande, email, id, prixtotal, statut
    FROM db3201yyyyy.bouille_commandes
    J'accede aussi a la base2 en supprimant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT date_commande, email, id, prixtotal, statut
    FROM db3441xxxxx.commandes
    UNION

  6. #6
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par wwwbillgates Voir le message
    si je retire les lignes suivantes de ma requete j'accede bien a la base1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UNION
    SELECT date_commande, email, id, prixtotal, statut
    FROM db3201yyyyy.bouille_commandes
    J'accede aussi a la base2 en supprimant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT date_commande, email, id, prixtotal, statut
    FROM db3441xxxxx.commandes
    UNION
    Dans les deux cas en utilisant $bdd1 ? ou en utilisant $bdd1 dans pour l'une et $bdd2 pour l'autre ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 70
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Dans les deux cas en utilisant $bdd1 ? ou en utilisant $bdd1 dans pour l'une et $bdd2 pour l'autre ?
    oui ca fonctionne seulement lorsque je fais comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $reponse1 = $bdd1->query('
    						SELECT date_commande, email, id, prixtotal, statut
    						FROM db3441xxxxx.commandes
    						ORDER BY id DESC
    						LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage
    						);
    $reponse1->setFetchMode(PDO::FETCH_ASSOC);
    ou comme cela,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $reponse1 = $bdd2->query('
    						SELECT date_commande, email, id, prixtotal, statut
    						FROM db3201xxxxx.bouille_commandes
    						ORDER BY id DESC
    						LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage
    						);
    $reponse1->setFetchMode(PDO::FETCH_ASSOC);
    Pense tu que ce quand même possible d'utiliser une jointure pour mes requêtes ou bien suis-je condomné à fusionner mes 2 bases de données dans mysql ?

  8. #8
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Ok

    Donc tu as deux instances MySQL qui ne se "connaissent" pas l'une l'autre.

    depuis PHP, tu peux accéder aux deux serveurs indépendamment, par contre quand tu fait ton UNION, tu demande a l'un des serveurs MySQl d'accéder a l'autre, ce qu'il ne sait pas faire en l'état actuel des choses.

    donc il faudrait lier les deux serveurs si c'est techniquement possible...

Discussions similaires

  1. [AC-2010] fonctions Droite et Gauche qui ne fonctionnent pas dans une requête
    Par samy35 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 05/03/2014, 10h14
  2. stop() ne fonctionne pas dans mon animation
    Par edzodzinam dans le forum Flash
    Réponses: 1
    Dernier message: 03/07/2009, 12h43
  3. INNER JOIN ne fonctionne pas dans ma requête SQL
    Par kryogen dans le forum Langage SQL
    Réponses: 13
    Dernier message: 18/03/2009, 10h25
  4. Réponses: 14
    Dernier message: 17/08/2006, 10h29
  5. La fonction CurrentDb() ne fonctionne pas dans une requête
    Par Sébastien Le Goyet dans le forum Access
    Réponses: 8
    Dernier message: 24/11/2005, 17h46

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