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

Résolu/Fermé
sinifer Messages postés 312 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2013 - 30 juin 2009 à 12:25
Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 - 30 juin 2009 à 16:01
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>
A voir également:

10 réponses

Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 388
30 juin 2009 à 14:03
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
0
sinifer Messages postés 312 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2013 11
30 juin 2009 à 14:14
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))
{
0
Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 388
30 juin 2009 à 14:40
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
0
sinifer Messages postés 312 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2013 11
30 juin 2009 à 14:52
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??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 388
30 juin 2009 à 15:01
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)
0
Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 388
30 juin 2009 à 15:04
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
0
sinifer Messages postés 312 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2013 11
30 juin 2009 à 15:17
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???
0
Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 388
30 juin 2009 à 15:43
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
0
sinifer Messages postés 312 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2013 11
30 juin 2009 à 15:51
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.
0
Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 388
30 juin 2009 à 16:01
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
0