Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/12/2010, 17h17   #1
Candidat au titre de Membre du Club
 
Inscription : février 2010
Messages : 54
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 54
Points : 10
Points : 10
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 :
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);
wwwbillgates est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 18h23   #2
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
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 ?)
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2010, 12h01   #3
Candidat au titre de Membre du Club
 
Inscription : février 2010
Messages : 54
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 54
Points : 10
Points : 10
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 :-(
wwwbillgates est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2010, 13h47   #4
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
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.
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2010, 14h11   #5
Candidat au titre de Membre du Club
 
Inscription : février 2010
Messages : 54
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 54
Points : 10
Points : 10
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 :
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 :
1
2
3
SELECT date_commande, email, id, prixtotal, statut
FROM db3441xxxxx.commandes
UNION
wwwbillgates est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2010, 14h42   #6
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Citation:
Envoyé par wwwbillgates Voir le message
si je retire les lignes suivantes de ma requete j'accede bien a la base1
Code :
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 :
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 ?
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2010, 15h29   #7
Candidat au titre de Membre du Club
 
Inscription : février 2010
Messages : 54
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 54
Points : 10
Points : 10
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 :
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 :
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 ?
wwwbillgates est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2010, 15h48   #8
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
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...
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h12.


 
 
 
 
Partenaires

Hébergement Web