Problème d'affichage sur 2 requette
Résolu
sinifer
Messages postés
312
Date d'inscription
Statut
Membre
Dernière intervention
-
sinifer Messages postés 312 Date d'inscription Statut Membre Dernière intervention -
sinifer Messages postés 312 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un problème d'affichage sur 2 requettes les donnée quel me renvoit ne sont pas complete
voilà le resultat que sa me met :
et j'ai eu ce résultat avec ce code:
donc si quelqu'un arrive a voir l'erreur ce serai cool car la j'en peu plus merci
j'ai un problème d'affichage sur 2 requettes les donnée quel me renvoit ne sont pas complete
voilà le resultat que sa me met :
Pays_____Prestataire____V G_________Commandes____C.A___________Mmc _______________________100683_______11512________571055 euro___49.61 ________1st____________829__________11___________1459 euro_____ 132.64 ________adc____________119 ________adw ___________23232 ________aff____________212776 ________bly____________8_____________23__________1879 euro_______81.68 ________cm_____________222 ________him____________2073 ________StV____________1399 ________tes ___________1 ________xxx____________9
et j'ai eu ce résultat avec ce code:
<?php include("application_top.php");?> <html> <head> </head> <body> <table border="1"> <tr style="text-align: center; background-color:#FFAD5B; font-weight:bold;"> <th> Pays </th> <th> Prestataire </th> <th> V G </th> <th> Commandes </th> <th> C.A </th> <th> Mmc </th> </tr> <?php // REQUETE 1 : $query = "SELECT substr(customers_from, 1, 3) AS Origin, COUNT(*) AS effectif_vg FROM customers GROUP BY Origin "; $result_vg = mysql_query($query) ; while ($row = mysql_fetch_array($result_vg)) { ?> <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_vg'] ?> </td> <?php // REQUETE 2 : $query_produit = " SELECT substr(customers_from, 1, 3) AS Origin, COUNT(DISTINCT cu.customers_id) AS effectif, count(co.commandes_status) AS command, AVG(co.commandes_montant) AS Mmc FROM customers cu INNER JOIN commandes co ON cu.customers_id=co.customers_id WHERE co.commandes_status='1' and customers_from='".$row['Origin']."' GROUP BY Origin "; $result = mysql_query($query_produit) ; while ($row = mysql_fetch_array($result)) { ?> <td style="text-align:center;"> <?php echo $row['command'] ?> </td> <td style="text-align:center;"> <?php echo round($row['command']*$row['Mmc']) ?> euro </td> <td style="text-align:center;"> <?php echo round($row['Mmc'] ,2) ?> </td> <?php } } ?> </table> </body> </html>
donc si quelqu'un arrive a voir l'erreur ce serai cool car la j'en peu plus merci
A voir également:
- Problème d'affichage sur 2 requette
- Supercopier 2 - Télécharger - Gestion de fichiers
- Affichage double ecran - Guide
- Problème affichage fenêtre windows 10 - Guide
- Windows 11 affichage classique - Guide
- Faire 2 colonnes sur word - Guide
10 réponses
Bonjour Siniper,
Je n'ai pas testé ma réponse, mais je dirais à première vue que le fait d'utiliser deux fois la même variable $row dans deux boucles while différentes n'est pas la meilleure solution. J'essayerai de remplacer dans la deuxième boucle while la variable $row par $row1 ainsi que dans les lignes suivantes.
A plus
Je n'ai pas testé ma réponse, mais je dirais à première vue que le fait d'utiliser deux fois la même variable $row dans deux boucles while différentes n'est pas la meilleure solution. J'essayerai de remplacer dans la deuxième boucle while la variable $row par $row1 ainsi que dans les lignes suivantes.
A plus
Je te remerci christounet
Mais j'avais déjà essayé $row1 d'ailleur je sai pas pourquoi je l'avai pas arrangé mais c'est pas sa le problème
Merci en tous cas de t'être penché dessu
Mais j'avais déjà essayé $row1 d'ailleur je sai pas pourquoi je l'avai pas arrangé mais c'est pas sa le problème
Merci en tous cas de t'être penché dessu
après avoir modifié mon code j'ai toujours un problème sa me sort que 3 ligne alors que je devrai en avoir minimum 5
<?php // REQUETE 1 : $query = "SELECT substr(customers_from, 1, 3) AS Origin, COUNT(*) AS effectif_vg FROM customers GROUP BY Origin "; $result_vg = mysql_query($query) ; while ($row = mysql_fetch_array($result_vg)) { // REQUETE 2 : $query_produit = " SELECT substr(customers_from, 1, 3) AS Origin, COUNT(DISTINCT cu.customers_id) AS effectif, count(co.commandes_status) AS command, AVG(co.commandes_montant) AS Mmc FROM customers cu INNER JOIN commandes co ON cu.customers_id=co.customers_id WHERE co.commandes_status='1' and customers_from='".$row['Origin']."' GROUP BY Origin "; $result = mysql_query($query_produit) ; while ($row1 = mysql_fetch_array($result)) { ?> <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_vg'] ?> </td> <td style="text-align:center;"> <?php echo $row1['command'] ?> </td> <td style="text-align:center;"> <?php echo round($row1['command']*$row1['Mmc']) ?> euro </td> <td style="text-align:center;"> <?php echo round($row1['Mmc'] ,2) ?> </td> </tr> <?php } } ?>
Bonjour,
Peux-tu rajouter le code suivant après la première instruction mysql_query
et le code suivant après la deuxième
Ceci devrait te donner le nombre de lignes de chaque requête et pourra peut-être nous aider à trouver le problème.
A plus
Peux-tu rajouter le code suivant après la première instruction mysql_query
$num_rows = mysql_num_rows($result_vg); echo "$num_rows Rows\n";
et le code suivant après la deuxième
$num_rows1 = mysql_num_rows($result); echo "$num_rows1 Rows\n";
Ceci devrait te donner le nombre de lignes de chaque requête et pourra peut-être nous aider à trouver le problème.
A plus
Merci
donc après avoirs effectué les différentes modiffication et ajouté ce que tu ma dit de faire
j'ai obtenu le résultat suivant
et normalement je dois avoir 7 lignes
donc après avoirs effectué les différentes modiffication et ajouté ce que tu ma dit de faire
<?php // REQUETE 1 : $query = "SELECT substr(customers_from, 1, 3) AS Origin, COUNT(*) AS effectif_vg FROM customers GROUP BY Origin "; $result_vg = mysql_query($query) ; $num_rows = mysql_num_rows($result_vg); echo "$num_rows Rows1\n"; while ($row = mysql_fetch_array($result_vg)) { // REQUETE 2 : $query_produit = " SELECT substr(customers_from, 1, 3) AS Origin, COUNT(DISTINCT cu.customers_id) AS effectif, count(co.commandes_status) AS command, AVG(co.commandes_montant) AS Mmc FROM customers cu INNER JOIN commandes co ON cu.customers_id=co.customers_id WHERE co.commandes_status='1' and customers_from='".$row['Origin']."' GROUP BY Origin "; $result = mysql_query($query_produit) ; $num_rows1 = mysql_num_rows($result); echo "$num_rows1 Rows2\n"; while ($row1 = mysql_fetch_array($result)) { ?> <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_vg'] ?> </td> <td style="text-align:center;"> <?php echo $row1['command'] ?> </td> <td style="text-align:center;"> <?php echo round($row1['command']*$row1['Mmc']) ?> euro </td> <td style="text-align:center;"> <?php echo round($row1['Mmc'] ,2) ?> </td> </tr> <?php } } ?>
j'ai obtenu le résultat suivant
12 Rows1 1 Rows2 1 Rows2 0 Rows2 0 Rows2 0 Rows2 1 Rows2 0 Rows2 0 Rows2 0 Rows2 0 Rows2 0 Rows2 0 Rows2 Pays Prestataire V G Commandes C.A Mmc ________100832 11532 573017 euro 49.69 1st __________855 11 1459 euro 132.64 bly __________8 23 1879 euro 81.68
et normalement je dois avoir 7 lignes
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Ok, la première requête te trouve donc 12 lignes, ensuite la deuxième requête trouve une ligne pour la 1ère, 2ème et 6ème ligne, cela voudrait dire que pour les autres lignes, la deuxième requête ne trouve pas de données dans la table commandes soit parce il n'existe pas de lignes avec le même customer_id ou bien aucune ligne pour ce customer_id n'a de ligne où commande_status égale à 1 (c'est que ce tu peux voir dans les résultats de ton premier post).
Est-tu sur que tu devrais avoir au minimum 5 lignes ? (tu peux peut-être inclure dans ta réponse quelques lignes de ta table commande que tu penses devoir être retournées par ta deuxième requête).
A plus
Ok, la première requête te trouve donc 12 lignes, ensuite la deuxième requête trouve une ligne pour la 1ère, 2ème et 6ème ligne, cela voudrait dire que pour les autres lignes, la deuxième requête ne trouve pas de données dans la table commandes soit parce il n'existe pas de lignes avec le même customer_id ou bien aucune ligne pour ce customer_id n'a de ligne où commande_status égale à 1 (c'est que ce tu peux voir dans les résultats de ton premier post).
Est-tu sur que tu devrais avoir au minimum 5 lignes ? (tu peux peut-être inclure dans ta réponse quelques lignes de ta table commande que tu penses devoir être retournées par ta deuxième requête).
A plus
Merci
voilà ce que sa me sort sur easyphp quant j'execute ma deuxième requette
voilà ce que sa me sort sur easyphp quant j'execute ma deuxième requette
Origin effectif command Mmc 7525 11317 49.22652646 1st 57 71 89.15422535 adc 1 1 79.00000000 adw 1950 2927 58.41648446 aff 14349 22406 57.93342185 bly 1 22 84.71363636 him 120 196 58.32066327 StV 76 109 62.64954128 xxx 1 2 29.00000000
Bonjour,
Peux-tu exécuter la requête suivante sur ta table commande et inclure le résultat dans ta réponse
Ceci devrait me permettre de vérifier que tu n'as pas différents customers_id pour les mêmes trois premiers caractères de customer_from.
A plus
Peux-tu exécuter la requête suivante sur ta table commande et inclure le résultat dans ta réponse
SELECT substr(cu.customers_from, 1, 3) AS Origin, cu.customers_id AS Client, count(co.commandes_status) AS command, AVG(co.commandes_montant) AS Mmc FROM customers cu INNER JOIN commandes co ON cu.customers_id=co.customers_id WHERE co.commandes_status = '1' GROUP BY Origin , Client
Ceci devrait me permettre de vérifier que tu n'as pas différents customers_id pour les mêmes trois premiers caractères de customer_from.
A plus
voilà les résultats que sa me donnes:
il y a plusieur page comme sa
Origin Client command Mmc __________6 1 29.00000000 62 1 79.00000000 71 1 49.00000000 72 1 79.00000000 81 1 79.00000000 87 1 19.95000000 94 1 19.95000000 102 3 32.96666667 123 1 49.00000000 128 1 14.95000000 131 1 49.00000000 140 1 19.00000000 142 1 9.00000000 146 1 39.00000000 156 2 24.47500000 159 1 19.95000000 173 1 49.00000000 174 1 79.00000000 185 2 229.00000000 adw 217856 2 49.00000000 adw 217934 1 14.95000000 adw 218060 1 79.00000000 adw 218358 1 79.00000000 adw 218534 1 9.00000000 adw 218934 7 35.52857143 adw 219298 2 79.00000000 adw 219368 1 79.00000000 adw 219736 1 9.00000000 adw 219806 2 11.97500000 adw 219867 1 79.00000000
il y a plusieur page comme sa
Bonjour,
Je crois que j'ai trouvé, dans ta deuxième requête tu as le code suivant:
or dans ta première requête tu ne prends que les trois premiers caractères de customers_from, le code ne devrait-il pas être
A plus
Je crois que j'ai trouvé, dans ta deuxième requête tu as le code suivant:
and customers_from='".$row['Origin']."'
or dans ta première requête tu ne prends que les trois premiers caractères de customers_from, le code ne devrait-il pas être
and substr(customers_from , 1 , 3) ='".$row['Origin']."'
A plus
:( hello Christounet
désolé je m'étais réjouis un peu trop vite et excuse moi pour t'avoir dis princess j'ai mis deux s de trop a la fin.
voilà mon affichage est bon merci mais mon problème c'est que sa doit m'affiché sa:
et chez moi sa n'affiche que:
donc on peut constaté que quand on a pas de commande on affiche rien??
j'ai essayer je me suis acharné a modifier ma requete pour que sa marche mais rien a faire
et comme je sais que tu es un prince ;) tu pourrai me donner un coup de main
désolé je m'étais réjouis un peu trop vite et excuse moi pour t'avoir dis princess j'ai mis deux s de trop a la fin.
voilà mon affichage est bon merci mais mon problème c'est que sa doit m'affiché sa:
Partenaire Nb de leads Nb de commandes Tx conv. CA MMC n/a 5271 234 4.44 22676 € 96.91 1st 259 12 4.63 1558 € 129.83 adc 82 2 2.44 138 € 69 adw 2258 122 5.4 11408 € 93.51 aff 6211 288 4.64 25202 € 87.51 cm_ 2 0 0 0 € 0 StV 11 0 0 0 € 0
et chez moi sa n'affiche que:
Pays Prestataire V G Commandes C.A Mmc 5271 234 22676 euro 96.91 1st 259 12 1558 euro 129.83 adc 82 2 138 euro 69 adw 2258 122 11408 euro 93.51 aff 6211 288 25202 euro 87.51
donc on peut constaté que quand on a pas de commande on affiche rien??
j'ai essayer je me suis acharné a modifier ma requete pour que sa marche mais rien a faire
et comme je sais que tu es un prince ;) tu pourrai me donner un coup de main
hello a croire qu'en t'envoyan ce message du ma donné des hondes positif qui ma fai solutionné mon problème j'ai finalement réussi.
mais a chaque solution ce pose un autre problème qui est que si je met aucune date il y a rien qui s'affiche
alors qu'ils pren aucune donné il devrai tou me mettre???
je comprend pas?
sinon ma requette je l'ai modifier comme celà:
mais a chaque solution ce pose un autre problème qui est que si je met aucune date il y a rien qui s'affiche
alors qu'ils pren aucune donné il devrai tou me mettre???
je comprend pas?
sinon ma requette je l'ai modifier comme celà:
$query_produit = " SELECT COUNT(DISTINCT cu.customers_id) AS effectif, count(co.commandes_status) AS command, AVG(co.commandes_montant) AS Mmc FROM customers cu INNER JOIN commandes co ON cu.customers_id=co.customers_id WHERE " . $condition . " and co.commandes_status='1' and customers_from LIKE '{$row['Origin']}%' ";