Rassembler résultats de 2 requetes sql

Rassembler résultats de 2 requetes sql - PHP - Programmation

Marsh Posté le 29-01-2011 à 14:15:18    

Bonjour,
 
J'aimerais rassembler les résultats de 2 requêtes identiques.
Je m'explique, j'ai 2 bases, avec chacune une table pays(Nom, Ville).
Dans la première table j'ai par exemple :
France Paris
France Marseille
USA     Los Angeles
Russie  Moscou
Et dans la deuxieme :
France Lyon
USA New-York
 
Ma requete est SELECT count(*) as nb From Pays GROUP BY Nom, ORDER BY nb
 
je récupère donc :
France 2
USA     1
Russie  1
et :
France  1
USA     1
 
je voudrais pouvoir joindre les résultats pour avoir :
France  3
USA      2
Russie   1
 
 
Est-ce possible facilement de joindre les résultats des 2 rèquetes ?

Reply

Marsh Posté le 29-01-2011 à 14:15:18   

Reply

Marsh Posté le 29-01-2011 à 15:30:41    

Salut,

 

Si tu utilises MySQL tu peux le faire en 1 coup directement dans la base en faisant une jointure entre les databases ( exemple ici : http://www.dottedidesign.com/node/14). Par contre j'ai l'impression que ça doit pas être très glop niveau performances :heink:


Message édité par esox_ch le 29-01-2011 à 15:31:04

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 29-01-2011 à 15:34:24    

Le problème c'est que mes tables sont dans 2 bases sur 2 serveur différents

Reply

Marsh Posté le 29-01-2011 à 15:39:45    

Ok ... Même si ça serait possible de le faire quand même je pense, les perf seraient ignobles (là aussi, c'est mon avis, j'ai jamais essayé de faire qqch de tel).
 
Mais vu que tu postes dans la cat PHP, tu peux faire la somme en PHP non?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 29-01-2011 à 15:41:54    

Oui, mais ça fait tout un travail en php avec des regexp. Donc je voulais juste savoir avant si c'était possible de fusionner les 2 résultats sql pour pouvoir directement travaillé dessus avec mysql_fetch_array :)

Reply

Marsh Posté le 29-01-2011 à 15:58:08    

Tout un travail avec des regexp :??:
Tu prends tes 2 tableaux, tu merges les clés ( array_merge(keys($tab1), keys($tab2)) ), ensuite tu fais un for dessus qui fait la somme des valeurs correspondantes..
 
C'est fait en 10 lignes :heink:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 29-01-2011 à 16:02:16    

heuuu ouai peut-etre, faut que j'étudie ces array_merge alors :)

Reply

Marsh Posté le 29-01-2011 à 17:10:27    

esox_ch a écrit :

Tout un travail avec des regexp :??:
Tu prends tes 2 tableaux, tu merges les clés ( array_merge(keys($tab1), keys($tab2)) ), ensuite tu fais un for dessus qui fait la somme des valeurs correspondantes..
 
C'est fait en 10 lignes :heink:


 
Déjà je peux pas mergé directe sur les résultats des requetes, car il faut des array et c'est des resources

Reply

Marsh Posté le 29-01-2011 à 17:15:01    

Merci de ne pas répondre sur un ton genre "déjà critique pas ce que je fais" alors que t'es à côté de la plaque.
Tu utilises quoi comme fonction pour exécuter tes requêtes? Parce qu'en utilisant fetchAll ( http://www.php.net/manual/en/pdostatement.fetchall.php ) avec les bon params ça joue ..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 29-01-2011 à 17:19:22    

Non c'était un "déja je suis bloqué à ce nivo", désolé que tu l'ai pris mal :) ok je vais voir ce fetchAll :) j'avais fait de simple mysql_result

Reply

Marsh Posté le 29-01-2011 à 17:19:22   

Reply

Marsh Posté le 29-01-2011 à 17:43:09    

J'ai mis mes resources dans des tableaux php mais avec array_merge j'arrive pas, ça n'additionne pas la ou le nom est le même

Reply

Marsh Posté le 29-01-2011 à 18:19:29    

C'est bon avec ça avant :)
 

Code :
  1. foreach ($tableau1 as $key=>$value) {
  2.        if (isset($tableau2[$key])) {
  3.                 $tableau1[$key] += $tableau2[$key];
  4.                 unset($tableau2[$key]);
  5.        }
  6. }


Reply

Marsh Posté le 29-01-2011 à 18:23:57    

Moi je l'aurais fait autrement.. en faisant un merge des clé des tableaux (voir mon post plus haut) et ensuite en l'utilisant pour parcourir les 2 autres tableaux et faire la somme


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed