Problème d'affichage sur 2 bdd diférente

[Résolu/Fermé]
Signaler
Messages postés
312
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 mars 2013
-
Messages postés
1263
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
-
Bonjour,
j'ai un petit problème avec mon tableau j'ai que l'affichage de ma première requette qui marche si quelqu'un peut me dire ce qui va pas ce serait gentil car a partire du deuxième affichage j'ai rien qui s'affiche donc les case sont vide et j'ai pas d'erreur dans ma connexion bdd

mon code est le suivant :

<table border="1">
<tr style="text-align: center; background-color:#FFAD5B; font-weight:bold;">
<th> US </th>
<th> Prestataire </th>
<th> Nb leads</th>
<th> UK </th>
<th> Prestataire </th>
<th> Nb leads </th>
<th> Total </th>
</tr>


<?php

$dbhost="*****";
$dblogin="***";
$dbpassword="****";
$dbname="****-**";
$connexion = mysql_connect($dbhost,$dblogin,$dbpassword)or die ("Erreur de connexion");
mysql_select_db($dbname,$connexion)or die ("Erreur de connexion base");

// REQUETE 1 :
$query = " SELECT distinct(cu_from) AS Origin,
COUNT(cu_from) AS effectif
FROM en_cu
WHERE cu_from like '%mds%' or cu_from like '%ms_remote%'
" . $condition . "
GROUP BY Origin ";
$result_us = mysql_query($query) ;

while ($row = mysql_fetch_array($result_us))
{
?>
<tr>
<td style="background-color:#CCCCCC;"> </td>
<td style="text-align:center;"> <?php echo $row['Origin'] ?> </td>
<td style="text-align:center;"> <?php echo $row['effectif'] ?> </td>

<?php
}
?>

<?php

$dbhost="****";
$dblogin="***";
$dbpassword="*****";
$dbname="****-*";
$connexion = mysql_connect($dbhost,$dblogin,$dbpassword)or die ("Erreur de connexion");
mysql_select_db($dbname,$connexion)or die ("Erreur de connexion base");

// REQUETE 1 :
$query_gb = " SELECT distinct(cu_from) AS origin_gb,
COUNT(cu_from) AS effectif_gb
FROM en_cu
WHERE cu_from like '%mds%' or cu_from like '%ms_remote%'
" . $condition . "
GROUP BY Origin ";
$result_gb = mysql_query($query_gb) ;

while ($row1 = mysql_fetch_array($result_gb))
{

?>

<td style="background-color:#CCCCCC;"> </td>
<td style="text-align:center;"> <?php echo $row1['origin_gb']; ?> </td>
<td style="text-align:center;"><?php echo $row1['effectif_gb']; ?> </td>
<?php
}
?>
</tr>
</table>

10 réponses

Messages postés
1263
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 364
Bonjour sinifer,

Peut-être qu'en utilisant un autre identifiant pour ta deuxième connexion comme $connection_gb, et éventuellement en fermant ta première connexion avec mysql_close($connection) ?
Je ne l'ai pas testé, à toi de voir.
A plus
Messages postés
312
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 mars 2013
12
Merci je vais testé mais j'ai une autre question est-il possible de faire comme sa??
sachant que c'est deux base différente??

<?php

$dbhost="*****";
$dblogin="***";
$dbpassword="****";
$dbname="****-**";
$connexion = mysql_connect($dbhost,$dblogin,$dbpassword)or die ("Erreur de connexion");
mysql_select_db($dbname,$connexion)or die ("Erreur de connexion base");

// REQUETE 1 :
$query = " SELECT distinct(cu_from) AS Origin,
COUNT(cu_from) AS effectif
FROM en_cu
WHERE cu_from like '%mds%' or cu_from like '%ms_remote%'
" . $condition . "
GROUP BY Origin ";
$result_us = mysql_query($query) ;

while ($row = mysql_fetch_array($result_us))
{

$dbhost="****";
$dblogin="***";
$dbpassword="*****";
$dbname="****-*";
$connexion = mysql_connect($dbhost,$dblogin,$dbpassword)or die ("Erreur de connexion");
mysql_select_db($dbname,$connexion)or die ("Erreur de connexion base");

// REQUETE 1 :
$query_gb = " SELECT COUNT(cu_from) AS effectif_gb
FROM en_cu
WHERE cu_from LIKE '{$row['Origin']}'
" . $condition . "
GROUP BY Origin ";
$result_gb = mysql_query($query_gb) ;

while ($row1 = mysql_fetch_array($result_gb))
{
Messages postés
1263
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 364
Bonjour,

En fait , tu ne dois faire la connexion à mysql qu'une seule fois au début de ton script, et ensuite choisir la base de données sur laquelle tu veux exécuter tes requêtes. Ton code devrait être alors à peu près le suivant
<?php

$dbhost="*****";
$dblogin="***";
$dbpassword="****";
$dbname="****-**";
$dbname1="****_*";
$connexion = mysql_connect($dbhost,$dblogin,$dbpassword)or die ("Erreur de connexion");
mysql_select_db($dbname,$connexion)or die ("Erreur de connexion base");

// REQUETE 1 :
$query = " SELECT distinct(cu_from) AS Origin,
COUNT(cu_from) AS effectif
FROM en_cu
WHERE cu_from like '%mds%' or cu_from like '%ms_remote%'
" . $condition . "
GROUP BY Origin ";
$result_us = mysql_query($query) ;

while ($row = mysql_fetch_array($result_us))
{

mysql_select_db($dbname1,$connexion)or die ("Erreur de connexion base");

// REQUETE 1 :
$query_gb = " SELECT COUNT(cu_from) AS effectif_gb
FROM en_cu
WHERE cu_from LIKE '{$row['Origin']}'
" . $condition . "
GROUP BY Origin ";
$result_gb = mysql_query($query_gb) ;

while ($row1 = mysql_fetch_array($result_gb))
{

A plus
Messages postés
312
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 mars 2013
12
Je te remerci mais j'ai rien qui s'afffiche
mes requettes sont elle juste au moin car je pense que sa doit être sa mon erreur??
Messages postés
1263
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 364
Bonjour,

Peux-tu rajouter le code suivant lors de ta deuxième requête afin de voir si tu as une erreur
$result_gb = mysql_query($query_gb) or die ('Erreur requete:' . mysql_error()); 

A plus

On se donne des souvenirs quand on se quitte.
(Marcel Achard)
Messages postés
1263
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 364
Bonjour,

J'ai regardé ta deuxième requête d'un peu plus près et j'ai quelques questions:

1°) Tu fais LIKE mais je ne vois pas de %
2°) Que contient $condition
3°) Tu fais GROUP BY Origin , mais je ne trouve pas Origin dans ta requête

A plus
Messages postés
312
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 mars 2013
12
le like il y a bien les %% dans la premières requettes alors je doi rajouter sa WHERE cu_from LIKE '%{$row['Origin']}%' sur la deuxième requette??

$condition c'est bon c'est des dates et sa marche

3°) Tu fais GROUP BY Origin , mais je ne trouve pas Origin dans ta requête
sisi dans le select distinct(cu_from) AS Origin

:)

j'ai une autre question par exemple si dans ma base us j'ai un origine xx
et que dans ma base GB j'ai pas l'origine xx va t'il sortire le resultat seulement pour us et 0 pour gb ou rien du tou???
Messages postés
1263
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 364
Bonjour,

Si j'ai bien compris, pour chaque cu_from de ta première base de données, tu veux connaître le nombre de fois que celui-ci se trouve dans ta deuxième base de données ?
Si oui, alors ta deuxième requête devrait être la suivante
$query_gb = " SELECT COUNT(cu_from) AS effectif_gb
FROM en_cu
WHERE cu_from = '" .$row['Origin']. "'" . $condition ;


Concernant ma remarque 3°), je parlais de ta deuxième requête et là tu n'as que effectif_gb.

Pour répondre à ta dernière question, oui tu auras le résultat de US et 0 pour GB

A plus
Messages postés
312
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 mars 2013
12
merci
mais le problème c'est que sa peut se trouver dans us et pas dans gb et des fois dans gb et pas dans us.
Messages postés
1263
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 364
Bonjour,

Si tu peux avoir des informations dans US et pas dans GB ou vice-versa, ton premier exemple de code est le bon sauf que tu dois corriger le GROUP BY Origin par GROUP BY origin_gb dans ta deuxième requête en tenant compte des minuscules/majuscules et ne faire la connexion au serveur qu'une seule fois. TU auras ainsi un tableau reprenant tous les enregistrements de la base US et ensuite un autre tableau reprenant tous les enregistrements de la base GB.

A plus